gpt4 book ai didi

python - 在组内使用 pandas.shift()

转载 作者:行者123 更新时间:2023-12-01 08:45:16 25 4
gpt4 key购买 nike

我有一个包含面板数据的数据框,假设它是 100 个不同对象的时间序列:

object  period  value 
1 1 24
1 2 67
...
1 1000 56
2 1 59
2 2 46
...
2 1000 64
3 1 54
...
100 1 451
100 2 153
...
100 1000 21

我想添加一个新列 prev_value 来存储每个对象以前的 value:

object  period  value  prev_value
1 1 24 nan
1 2 67 24
...
1 99 445 1243
1 1000 56 445
2 1 59 nan
2 2 46 59
...
2 1000 64 784
3 1 54 nan
...
100 1 451 nan
100 2 153 451
...
100 1000 21 1121

我可以使用 .shift() 和 .groupby() 来做到这一点吗?

最佳答案

Pandas 的分组对象有 groupby.DataFrameGroupBy.shift方法,它将移动每个组 n periods 中的指定列,就像常规数据帧的 shift 方法一样:

df['prev_value'] = df.groupby('object')['value'].shift()

对于以下示例数据框:

print(df)

object period value
0 1 1 24
1 1 2 67
2 1 4 89
3 2 4 5
4 2 23 23

结果将是:

     object  period  value  prev_value
0 1 1 24 NaN
1 1 2 67 24.0
2 1 4 89 67.0
3 2 4 5 NaN
4 2 23 23 5.0

关于python - 在组内使用 pandas.shift(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53335567/

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