我有一个日期,previous_day和价格的数据。
DATE | prev_day | price
01-01-2018 | 1 | 44
02-01-2018 | 1 | 45
02-01-2018 | 2 | 41
03-01-2018 | 1 | 54
03-01-2018 | 2 | 49
03-01-2018 | 3 | 46我想使用下面的步骤创建第二天和前一天:
DATE | prev_day | price | next_day | prior_day
01-01-2018 | 1 | 44 | |
02-01-2018 | 1 | 45 | |
02-01-2018 | 2 | 41 | |
03-01-2018 | 1 | 54 | |
03-01-2018 | 2 | 49 | |
03-01-2018 | 3 | 46 | |其中由每个next_day组成的逻辑等于日期+1天和prev_day +1天的价格,prior_day等于日期-1天和prev_day -1天的价格。
发布于 2021-09-08 12:05:54
你可以groupby "prev_day“和shift
df['prior_day'] = df.groupby('prev_day')['price'].shift()
df['next_day'] = df.groupby('prev_day')['price'].shift(-1)产出:
DATE prev_day price prior_day next_day
0 01-01-2018 1 44 NaN 45.0
1 02-01-2018 1 45 44.0 54.0
2 02-01-2018 2 41 NaN 49.0
3 03-01-2018 1 54 45.0 NaN
4 03-01-2018 2 49 41.0 NaN
5 03-01-2018 3 46 NaN NaNhttps://stackoverflow.com/questions/69102636
复制相似问题