簡體   English   中英

熊貓-如何制作有條件的新專欄

[英]Pandas - How to make new column with condition

我有這張桌子

   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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM