ffill fillna python

Есть следующий дата фрейм. Нужно заполнить пропуски впереди стоящим значением. Ранее nan были созданы с помощью

(np.where(data['id']=='1.','население',np.NaN))
id|group
0|население
1|nan
2|nan
...         
115|не менее 10 МВт
116|nan
117|nan

Желаемый output

|id|name|
|0|население|
|1|население|
|2|население|
|...|...|         
|115|не менее 10 МВт|
|116|не менее 10 МВт|
|117|не менее 10 МВт|

Делаю data['group']=data['group'].fillna(method='ffill',inplace=True), на что выдает мне столбик None


Ответы (1 шт):

Автор решения: CrazyElf

Нужно использовать что-то одно - либо присвоение результата, либо параметр inplace=True. Т.е. либо так (и лучше так) - без параметра inplace:

data['group']=data['group'].fillna(method='ffill')

Либо так (лучше так не надо, в будущих версиях Pandas уберут inplace отовсюду, потому что он всех только путает, как и вас в данном случае) - с параметром inplace, но результат не присваиваем, он уже там, где нужно должен быть:

data.loc[:, 'group'].fillna(method='ffill',inplace=True)

При указании inplace=True операция проводится "по месту" и возвращается None, который вы и присваиваете в столбец, в котором уже всё заполнено как нужно было к моменту этого присвоения.

→ Ссылка