我必须使用double for循环遍历数据,以将一行数据与其他行数据进行比较。每行我都要这样做。你知道吗
不幸的是,我的真实数据有数百万行长,而且循环要花很长时间才能处理。你知道吗
有没有办法避免使用双for循环?因为我只对比较Date1和date2中相似的东西感兴趣-我想我可以按东西分组,并将双for循环应用于每个组?你知道吗
但我不知道该怎么写,因为len(分组)有一个复杂的问题。还有很多行的'Quantity'=0,因此这些行不需要包含在计算中。事先谢谢你的帮助。你知道吗
d={'Thing':['Thing1','Thing2','Thing1','Thing2','Thing5'],'Date1' :
['01-01-2016','02-02-2015','03-03-2015','03-03-2015', '24-03-2016'], 'Date2' : ['04-04-2015','03-03-2014','05-04-2015','07-03-2015','03-04-2016'],
'Quantity':[1,1,1,1,0]}
data=pd.DataFrame(d)
data['Level']=0
for i in range(0,len(data)):
for j in range(i+1,len(data)):
if data['Thing'][i] == data['Thing'][j] and data['Date1'][i] >= data['Date1'][j]
and data['Date1'][i] < data['Date2'][j] and data['Quantity']==1:
data['Level'][i]=data['Level'][i]+1
data['Level'][j]=data['Level'][j]+1
我会尝试执行自联接:
结果如下:
那么文件管理器是您喜欢的:
相关问题 更多 >
编程相关推荐