он должен работать, если только он не находится внутри цикла, как упомянуто ..
Вы должны рассмотреть вопрос о его заполнении перед построением цикла или во время построения DataFrame:
Пример Ниже показано, как это работает:
>>> df
col1
0 one
1 NaN
2 two
3 NaN
Работает как ожидалось:
>>> df['col1'].fillna( method ='ffill') # This is showing column specific to `col1`
0 one
1 one
2 two
3 two
Name: col1, dtype: object
Во-вторых, если вы хотите изменить несколько выборочных столбцов, используйте метод ниже:
Предположим, у вас есть 3 столбцаи хотите fillna
с ffill
только для 2 столбцов.
>>> df
col1 col2 col3
0 one test new
1 NaN NaN NaN
2 two rest NaN
3 NaN NaN NaN
Определите столбцы, которые нужно изменить ..
cols = ['col1', 'col2']
>>> df[cols] = df[cols].fillna(method ='ffill')
>>> df
col1 col2 col3
0 one test new
1 one test NaN
2 two rest NaN
3 two rest NaN
Если вы считаете, что это может произойти черезВесь DataFrame, используйте его во время как следует:
>>> df
col1 col2
0 one test
1 NaN NaN
2 two rest
3 NaN NaN
>>> df.fillna(method ='ffill') # inplace=True if you considering as you wish for permanent change.
col1 col2
0 one test
1 one test
2 two rest
3 two rest