首页 > 解决方案 > 熊猫:同一天和同一月的年份 pct_change

问题描述

我在DataFrame. 对于每个日期,我想将该数字除以上一年的数字(同一天和同一月)。2月29日可以忽略。

import pandas as pd
import numpy as np
idx = pd.date_range('2000-01-01', periods=1000)
df = pd.DataFrame(np.arange(1000), index=idx)

这是df四个示例值的值:

In [11]: df.iloc[0:2]
Out[11]: 
            0
2000-01-01  0
2000-01-02  1

In [12]: df.iloc[366:368]
Out[12]: 
              0
2001-01-01  366
2001-01-02  367

我的预期输出将是 2000 年和 2001 年的缺失值:

2001-01-01  (366-0)/0=Inf (or Nan)
2001-01-02  (367-1)/1=366

我的方法是df.pct_change(freq='Y'),但这只是提高了ValueError: cannot reindex from a duplicate axis。我在这个 sim 中的预期输出

我还能如何做到这一点?

标签: pythonpandas

解决方案


推荐阅读