熊猫:求n行的平均值,变量n

时间:2018-06-25 16:27:53

标签: python pandas dataframe moving-average

我有两个数据帧,分别称为A和B。A具有elementID,startDate,endDate列,而B具有elementID,date,dataValue列。我想向A添加一个“平均”列。对于A中的任何特定行,我们都应该有row.average = B[(B.elementID==row.elementID) & (row.startDate <= B.date) & (row.endDate >= B.date)].mean().

目前,我只是天真地遍历A的每一列并计算B [(B.elementID == row.elementID)&(row.startDate <= B.date)&(row.endDate> = B.date) ]。意思()。但是,A和B的行数都在1000万左右,并且开始/结束日期最多可以相隔2年,因此这种方法花费的时间太长。

具体来说,A看起来像

ID    startDate   endDate
3093  2015-01-09  2015-01-23
3093  2015-01-13  2015-03-20
3093  2015-01-20  2015-02-27
3093  2015-01-26  2015-03-06
3093  2015-01-27  2015-04-17
3093  2015-02-01  2015-07-17
3093  2015-02-03  2015-02-27
3093  2015-02-04  2016-01-15
...

B看起来像

ID   date             dataValue
512  2014-12-31       0.1285
3093 2014-12-31       0.1176
3101 2014-12-31       0.1591
3103 2015-01-12       0.3001
3105 2015-01-12       0.2306
3107 2015-01-12       0.1524
3107 2015-01-13       0.0000
3107 2015-01-14       0.1739
3112 2015-01-15       0.0370
...

0 个答案:

没有答案