所以我基本上有两个csv文件:
(一)邮票.csv(800行)
[id (int64), start date (datetime64[ns]), end
date (datetime64[ns])]
(二)数据.csv(36万行)[date time(datetime64[ns])]
中的所有条目邮票.csv具有唯一的开始日期和结束日期间隔。我在两个数据帧中加载了它们
df=pd.read_csv(Stamps.csv)
df2=pd.read_csv(Data.csv)
并尝试根据日期时间字段将df2中的条目与df中的条目进行匹配;这样,如果df2中的“日期时间”值介于一个间隔之间,则将df中的id赋给它。 现在我试着这样做:
for index2, row2 in df2.iterrows(): #for every entry in the Data.csv
for index, row in df.iterrows(): #for every entry in Stamp.csv
if(row['StartDateTime']<=row2['Datetime']<=row['StopDateTime']): #if the date from Data.csv is between 2 intervals from Stamp.csv
df2['JobRef']=row['JobRef'] #give the id from Stamp.csv to the entry from Data.csv
break
df.to_csv(path_or_buf=path, sep=';', index=False)
我得到了想要的结果,但是它需要很长的时间来处理(第一次运行需要3个小时)。有没有什么办法能快点?你知道吗
另外,我也尝试了for循环的多线程处理,但执行起来还是花了很长时间。你知道吗
最后做了这件事,感谢chris dorn发布的答案:
工作很快。你知道吗
相关问题 更多 >
编程相关推荐