我有一个类似如下的大型数据框:
df =
基本上,我试图记录产品(UPC)的销售在价格改变后的7天内如何反应。我想创建一个新列['Reaction'],记录从价格改变的那一天开始,向前7天的单位销售总和。请注意,有时一个UPC可能有多于2次的价格变动,因此我希望每个价格变动都有不同的总和。所以我想看到这个:
“日期设置在我的数据中是困难的。有时(例如对于UPC 35),日期不会超过7天。因此,我希望它默认为下一个最近的日期,或者有多少个日期(如果少于7天)。
这是我尝试过的: 我将日期设置为datetime,然后通过.days方法计算天数。 这是我想要设置代码的方式(初稿):”
有没有更简单的方法来做这件事,也许不需要用for循环?
UPC Unit_Sales Price Price_Change Date
0 22 15 1.99 NaN 2017-10-10
1 22 7 2.19 True 2017-10-12
2 22 6 2.19 NaN 2017-10-13
3 22 7 1.99 True 2017-10-16
4 22 4 1.99 NaN 2017-10-17
5 35 15 3.99 NaN 2017-10-09
6 35 17 3.99 NaN 2017-10-11
7 35 5 4.29 True 2017-10-13
8 35 8 4.29 NaN 2017-10-15
9 35 2 4.29 NaN 2017-10-15
基本上,我试图记录产品(UPC)的销售在价格改变后的7天内如何反应。我想创建一个新列['Reaction'],记录从价格改变的那一天开始,向前7天的单位销售总和。请注意,有时一个UPC可能有多于2次的价格变动,因此我希望每个价格变动都有不同的总和。所以我想看到这个:
UPC Unit_Sales Price Price_Change Date Reaction
0 22 15 1.99 NaN 2017-10-10 NaN
1 22 7 2.19 True 2017-10-12 13
2 22 6 2.19 NaN 2017-10-13 NaN
3 22 7 1.99 True 2017-10-16 11
4 22 4 1.99 NaN 2017-10-19 NaN
5 35 15 3.99 NaN 2017-10-09 NaN
6 35 17 3.99 NaN 2017-10-11 NaN
7 35 5 4.29 True 2017-10-13 15
8 35 8 4.29 NaN 2017-10-15 NaN
9 35 2 4.29 NaN 2017-10-18 NaN
“日期设置在我的数据中是困难的。有时(例如对于UPC 35),日期不会超过7天。因此,我希望它默认为下一个最近的日期,或者有多少个日期(如果少于7天)。
这是我尝试过的: 我将日期设置为datetime,然后通过.days方法计算天数。 这是我想要设置代码的方式(初稿):”
x = df.loc[df['Price_Change'] == 'True']
for x in df:
df['Reaction'] = sum(df.Unit_Sales[1day :8days])
有没有更简单的方法来做这件事,也许不需要用for循环?