df.pct_change () AttributeError: у объекта 'BlockManager' нет атрибута 'reindex' - PullRequest
0 голосов
/ 26 февраля 2020

Я получаю AttributeError: объект BlockManager не имеет атрибута reindex, когда я пытаюсь использовать pct_change () в DataFrame с датами. Ниже приведен пример:

df = pd.DataFrame({
    'FR': [4.0405, 4.0963, 4.3149],
    'GR': [1.7246, 1.7482, 1.8519],
    'IT': [804.74, 810.01, 860.13]},
    index=['1980-01-01', '1980-02-01', '1980-03-01'])

df.pct_change()
Traceback (most recent call last):

  File "<ipython-input-12-b804940da547>", line 1, in <module>
    df.pct_change()

  File "C:\ProgramData\miniconda3\lib\site-packages\pandas\core\generic.py", line 10088, in pct_change
    rs = data.div(data.shift(periods=periods, freq=freq, axis=axis, **kwargs)) - 1

  File "C:\ProgramData\miniconda3\lib\site-packages\pandas\core\ops\__init__.py", line 720, in f
    return self._construct_result(new_data)

  File "C:\ProgramData\miniconda3\lib\site-packages\pandas\core\frame.py", line 5332, in _construct_result
    out = self._constructor(result, index=self.index, copy=False)

  File "C:\ProgramData\miniconda3\lib\site-packages\pandas\core\frame.py", line 432, in __init__
    data, axes=dict(index=index, columns=columns), dtype=dtype, copy=copy

  File "C:\ProgramData\miniconda3\lib\site-packages\pandas\core\generic.py", line 223, in _init_mgr
    mgr = mgr.reindex(

AttributeError: 'BlockManager' object has no attribute 'reindex'

Этого не происходит, если в DataFrame нет дат, как в:

s = pd.Series([90, 91, 85])

s.pct_change()
Out[10]: 
0         NaN
1    0.011111
2   -0.065934
dtype: float64

Есть идеи?

...