我有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
这可能是一个简单的问题,但目前我无法为此提出一个好的解决方案,我们将不胜感激。
答案 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