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 шт):
Нужно использовать что-то одно - либо присвоение результата, либо параметр inplace=True. Т.е. либо так (и лучше так) - без параметра inplace:
data['group']=data['group'].fillna(method='ffill')
Либо так (лучше так не надо, в будущих версиях Pandas уберут inplace отовсюду, потому что он всех только путает, как и вас в данном случае) - с параметром inplace, но результат не присваиваем, он уже там, где нужно должен быть:
data.loc[:, 'group'].fillna(method='ffill',inplace=True)
При указании inplace=True операция проводится "по месту" и возвращается None, который вы и присваиваете в столбец, в котором уже всё заполнено как нужно было к моменту этого присвоения.