gpt4 book ai didi

python - Pandas - 如何根据条件创建新列

转载 作者:行者123 更新时间:2023-12-01 01:31:43 24 4
gpt4 key购买 nike

我有这张 table

   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 天为空

当 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)

关于python - Pandas - 如何根据条件创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com