gpt4 book ai didi

python - 在 Pandas 中移动缺少日期的时间序列

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

我有一个时间序列,其中有一些缺失的条目,看起来像这样:

date     value
---------------
2000 5
2001 10
2003 8
2004 72
2005 12
2007 13

我想为“previous_value”创建一个列。但我只希望它连续多年显示值(value)。所以我希望它看起来像这样:

date     value    previous_value
-------------------------------
2000 5 nan
2001 10 5
2003 8 nan
2004 72 8
2005 12 72
2007 13 nan

但是,仅将 pandas shift 函数直接应用于“值”列,对于“时间”= 2003,“previous_value”= 10,对于“时间”= 2007,“previous_value”= 12。

在 pandas 中处理这个问题的最优雅的方法是什么? (我不确定它是否像设置“频率”属性一样简单)。

最佳答案

In [588]: df = pd.DataFrame({ 'date':[2000,2001,2003,2004,2005,2007],
'value':[5,10,8,72,12,13] })

In [589]: df['previous_value'] = df.value.shift()[ df.date == df.date.shift() + 1 ]

In [590]: df
Out[590]:
date value previous_value
0 2000 5 NaN
1 2001 10 5
2 2003 8 NaN
3 2004 72 8
4 2005 12 72
5 2007 13 NaN

另请参阅此处了解使用 resample() 的时间序列方法:Using shift() with unevenly spaced data

关于python - 在 Pandas 中移动缺少日期的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997367/

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