Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:用变量n求n行的平均值_Python_Pandas_Dataframe_Moving Average - Fatal编程技术网

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

Python 熊猫:用变量n求n行的平均值,python,pandas,dataframe,moving-average,Python,Pandas,Dataframe,Moving Average,我有两个数据帧,分别称为A和B。A有elementID、startDate、endDate列,而B有elementID、date和dataValue列。我想在A中添加一个“average”列。对于A中的任何特定行,我们应该有row.average=B[(B.elementID==row.elementID)&(row.startDate=B.date)].mean()。 目前,我只是天真地遍历A的每一列,并计算B[(B.elementID==row.elementID)&(row.startDa

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

目前,我只是天真地遍历A的每一列,并计算B[(B.elementID==row.elementID)&(row.startDate=B.date)].mean()。但是,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
...
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
...
B看起来像

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
...
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
...

B
中的ID是否唯一?否,但(ID,日期)组合是唯一的。我把它编辑得更清楚了。