本文介绍了在组内使用pandas.shift()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含面板数据的数据框,比方说这是100个不同对象的时间序列:
I have a dataframe with panel data, let's say it's time series for 100 different objects:
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
:
I want to add a new column prev_value
that will store previous value
for each object:
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()吗?
Can I use .shift() and .groupby() somehow to do that?
推荐答案
是的,只需:
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
这篇关于在组内使用pandas.shift()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!