Делая процентное изменение и все работает хорошо, за исключением заполнения, я попытался установить pct_change (fill_method = None), но я получаю ошибку:
fill = getattr (self, fill_method) (limit = limit)
TypeError: getattr (): имя атрибута должно быть строкой
я группирую по именам и ожидаю, что первые 3 значения каждого имени будут нан. Но что он делает, он обрабатывает все значения как часть списка и вычисляет pct_change для всех. В примере это работает для foo, но не для других имен. пожалуйста, смотрите код ниже.
import pandas as pd
import numpy as np
np.random.seed(7)
df = pd.DataFrame(np.random.randn(40, 1))
a=10*('foo',)
b=10*('bar',)
c=10*('laa',)
d=10*('loo',)
df['names']=a+b+c+d
df['percentage_change']=df.groupby('names')[0].pct_change(periods=3)
что я получу:
names pct change
foo nan
foo nan
foo nan
foo -.7589
foo .693195
... ....
bar -.6435
bar -1.16857
bar -.158
bar -.582117
что я ожидаю, это
names pct change
foo nan
foo nan
foo nan
foo -.7589
foo .693195
... ....
bar nan
bar nan
bar nan
bar -.582117