【发布时间】:2014-08-29 21:36:51
【问题描述】:
我的问题是我有一个数据框包含所有开始和结束日期以及每种类型的相应 ID。我想使用这个数据框根据日期将 id 分配给另一个数据框。具体来说,如果第二个数据帧中的日期在第一个数据帧的开始日期和结束日期之间,它将被签名为与第一个数据帧相同的 ID。
#Here are two data frames
m1=pd.DataFrame({'type':['A','A','A','B','B','B'],
'id':[1,2,3,1,2,3],
'startdate':[20120201,20120301,20130401,20130301,20130501,20140601],
'enddate':[20120218,20120324,20130425,20130312,20130521,20140706]})
m2=pd.DataFrame({'type':['A','A','B','B'],
'pin':[12,33,25,47],
'date':[20120213,20130411,20130504,20140704]})
#ideally the result should be
m3=pd.DataFrame({'type':['A','A','B','B'],
'pin':[12,33,25,47],
'date':[20120213,20130411,20130504,20140704],
'id':[1,3,2,3]})
我想不出更好的方法来做到这一点。因为有数百万条记录,我需要一种更有效的方式来运行代码。有任何想法吗?非常感谢!
【问题讨论】: