我有这张桌子
Day, Average
1, 1200,
3, 1300,
4, 1400,
5, 1500,
我想要的是 :
Day, Average, Tomorrow_average
1, 1200, NaN
3, 1300, 1400
4, 1400, 1500
5, 1500, NaN
说明:
明天的平均值是第二天的平均值
当Day = 1时,明天平均值= NaN,因为Day 2为空
当Day = 3时,明天平均值= 1400,因为第4天的平均值是1400
怎么做?
df["Tomorrow Average"] = [] # ????????
使用索引的非常长的解决方案,
df['Tomorrow_average'] = df.set_index('Day').reindex(np.arange(df.Day.min(), df.Day.max()+1)).Average.shift(-1).reindex(df.Day).reset_index(drop = True)
Day Average Tomorrow_average
0 1 1200 NaN
1 3 1300 1400.0
2 4 1400 1500.0
3 5 1500 NaN
具有相同输出的更简单的一种:
cond = (df['Day'] + 1) == df['Day'].shift(-1)
df['Tomorrow_average'] = np.where(cond, df['Average'].shift(-1), np.nan)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句