数据框均值使用2个单独的数据框附加为一列

时间:2019-02-26 03:39:29

标签: python pandas dataframe

我有2个数据框,如下所示:

数据框1:

Item    Start Date  End Date    Price   Mean Price
Item-1  21/12/2018  23/12/2018    15        ?
Item-2  22/12/2018  23/12/2018    16.5      ?

数据框2:

Item    Date    Price
Item-1  21/12/2018  15.1
Item-1  22/12/2018  15.2
Item-1  23/12/2018  15.3
Item-1  24/12/2018  15.4
Item-2  21/12/2018  16.3
Item-2  22/12/2018  17.3
Item-2  23/12/2018  18.3
Item-2  24/12/2018  19.3

根据商品代码,使用数据框1中的开始和结束日期选择数据框2的子集,并计算价格平均值。有没有这样做的程序?

最终结果应为:

Item    Start Date  End Date    Price   Mean Price
Item-1  21/12/2018  23/12/2018  15      15.1997807
Item-2  22/12/2018  23/12/2018  16.5    17.79297614

这可能是一个简单的问题,但目前我无法为此提出一个好的解决方案,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用for循环

l=[df2.loc[(df2.Item==z) & df2.Date.between(x,y),'Price'].mean() for x,y,z in zip(df1.StartDate,df1.EndDate,df1.Item)]
df1['Price Mean']=l

答案 1 :(得分:1)

好吧,仍在向@ Wen-Ben学习,但这是另一种(扩展的)方法:

None