gpt4 book ai didi

python - Pandas 数据框 : adding columns based on previous time periods

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:48 25 4
gpt4 key购买 nike

我正在尝试解决 pandas 中的一个问题,更习惯于 R。

我有一个包含三列的数据框 df:person、period、value

df.head() 或前几行看起来像:

  | person | period | value
0 | P22 | 1 | 0
1 | P23 | 1 | 0
2 | P24 | 1 | 1
3 | P25 | 1 | 0
4 | P26 | 1 | 1
5 | P22 | 2 | 1

请注意,最后一行记录了个人 P22 的周期 2 的值。

我现在想添加一个新列来提供上一时期的值。因此,如果对于 P22,周期 1 中的值为 0,那么这个新列将如下所示:

  | person | period | value  | lastperiod
5 | P22 | 2 | 1 | 0

我相信我需要执行类似以下命令的操作,已加载 pandas:

for p in df.period.unique():
df['lastperiod']== [???]

应该如何表述?

最佳答案

您可以按人分组,然后对值应用转换:

In [11]: g = df.groupby('person')

In [12]: g['value'].apply(lambda s: s.shift())
Out[12]:
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 0
dtype: float64

将其添加为一列:

In [13]: df['lastPeriod'] = g['value'].apply(lambda s: s.shift())

In [14]: df
Out[14]:
person period value lastPeriod
1 P22 1 0 NaN
2 P23 1 0 NaN
3 P24 1 1 NaN
4 P25 1 0 NaN
5 P26 1 1 NaN
6 P22 2 1 0

这里的 NaN 表示缺失数据(即上一时期没有条目)。

关于python - Pandas 数据框 : adding columns based on previous time periods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18747029/

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