我有一个使用for循环编写的代码,用于保存列表中存在的数据帧(Date是列表的名称)到指定的路径
for Dates in Date:
if Dates.empty:
pass
else:
PATH = f'C:/Users/Desktop/' + Dates.iloc[0]['Col1'] + '/' + Dates.iloc[0]['Col2'] + '/'
if not os.path.exists(PATH):
os.makedirs(PATH)
Day = Dates.iloc[0]["DAY"]
Dates = Dates.drop(['Col1', 'Col2'], axis=1)
Dates.to_csv(os.path.join(PATH,f'{Day}.csv'),index=False)
然而,这段代码执行了很长时间。谁能帮我如何修改上面的代码使用地图功能,以减少时间?
在for循环正常工作的假设下,您可以像下面这样使用map函数:
import pandas as pd
def save_dataframe(Dates: pd.DataFrame):
if not Dates.empty:
PATH = f'C:/Users/Desktop/' + Dates.iloc[0]['Col1'] + '/' + Dates.iloc[0]['Col2'] + '/'
if not os.path.exists(PATH):
os.makedirs(PATH)
Day = Dates.iloc[0]["DAY"]
Dates = Dates.drop(['Col1', 'Col2'], axis=1)
Dates.to_csv(os.path.join(PATH,f'{Day}.csv'),index=False)
my_map = map(save_dataframe, Date) # generation of your map
list(my_map) # excutions of the map