Я получаю 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
Есть идеи?