Han*_*ana 5 python dataframe pandas
我有一个看起来像这样的大型DataFrame:df =
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
Run Code Online (Sandbox Code Playgroud)
基本上,我试图记录在接下来的7天价格变化后产品(UPC)的销售情况如何。我想创建一个新列['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
Run Code Online (Sandbox Code Playgroud)
困难的是如何在我的数据中设置日期。有时(例如UPC 35)日期不超过7天。因此,我希望它默认为下一个最近的日期,或者默认为下一个最近的日期(如果少于7天)。
这是我尝试过的方法:我将日期设置为日期时间,并考虑通过.days方法对天数进行计数。这就是我考虑设置代码(草稿)的方式:
x = df.loc[df['Price_Change'] == 'True']
for x in df:
df['Reaction'] = sum(df.Unit_Sales[1day :8days])
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法可以做到这一点,也许没有for循环?
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |