[英]pandas find similar row in a column, make a new column according to the condition
[英]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.