gpt4 book ai didi

python - 缺少数据的 python 中的 Pct_change

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:13 30 4
gpt4 key购买 nike

我有计算导数的季度时间序列数据。问题是,原始数据在时间序列上存在差距。因此,如果我试图找出一个变量的四分之一百分比变化,有时它不会意识到它正在计算比一个季度长得多的时间段的百分比变化。我如何确保 pct_change() 仅在前面的数据点来自上一季度(而不是更早)时才执行

与此相关,我希望计算同比百分比变化,这必须追溯到 4 个时期。我可以使用 pct_change 并让它回顾 4 个周期而不是 1 个周期,但同样,这假设所有数据都存在。

处理这种情况的最佳方法是什么?

如果数据是完美的,下面是我会使用的代码:

dataRGQoQ = rawdata.groupby("ticker")['revenueusd'].pct_change()

我在下面包含了样本数据。该数据中有两点需要关注:(1)股票代码为“A”的“2006-09-30”和“2007-12-31”之间的差距; (2) 对于 ABV,“2012-12-31”和“2013-12-31”之间的差距(这次略有不同,因为它有日期但没有数据)。

ticker,calendardate,revenueusd  
A,2005-12-31,5139000000
A,2006-03-31,4817000000
A,2006-06-30,4560000000
A,2006-09-30,4325000000
A,2007-12-31,5420000000
A,2008-03-31,5533000000
A,2008-06-30,5669000000
A,2008-09-30,5739000000
AA,2005-12-31,26159000000
AA,2006-03-31,27242000000
AA,2006-06-30,28438000000
AA,2006-09-30,29503000000
AA,2006-12-31,30379000000
AA,2007-03-31,31338000000
AA,2007-06-30,31445000000
AA,2007-09-30,31201000000
AA,2007-12-31,30748000000
ABBV,2012-12-31,18380000000
ABBV,2013-03-31,
ABBV,2013-06-30,
ABBV,2013-09-30,
ABBV,2013-12-31,18790000000
ABBV,2014-03-31,19024000000
ABBV,2014-06-30,19258000000
ABBV,2014-09-30,19619000000
ABBV,2014-12-31,19960000000
ABBV,2015-03-31,20437000000

最佳答案

我将把 ['calendardate', 'ticker'] 放在索引中以方便旋转。然后 unstack 以获取列中的代码值。

df.set_index(['calendardate', 'ticker']).unstack().head(10)

enter image description here

在索引中使用 calendardate,我们可以使用 resample('Q') 插入所有季度。这将确保我们为缺少的季度获得正确的 NaN

df.set_index(['calendardate', 'ticker']).unstack().resample('Q').mean().head(10)

将其分配给 df1 然后我们可以执行 pct_changestackreset_index 以取回列在适当的数据框中。

df1 = df.set_index(['calendardate', 'ticker']).unstack().resample('Q').mean()
df1.pct_change().stack().reset_index()

enter image description here

关于python - 缺少数据的 python 中的 Pct_change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576969/

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