Python 熊猫-如何使用条件创建新列

Python 熊猫-如何使用条件创建新列,python,pandas,Python,Pandas,我有这张桌子 Day, Average 1, 1200, 3, 1300, 4, 1400, 5, 1500, 我想要的是: Day, Average, Tomorrow_average 1, 1200, NaN 3, 1300, 1400 4,

我有这张桌子

   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,因为第2天是空的

当第3天时,明天的平均值为1400,因为第4天的平均值为1400

怎么做

df["Tomorrow Average"] = [] # ????????

使用reindex的非常长的解决方案

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)