ffill не заполняет данные в фрейме данных pandas

#python #pandas #dataframe

Вопрос:

У меня есть фрейм данных, подобный этому :

   A  B  C  E D
---------------
0 a  r  g    g
1            x
2 x  f  f    r
3            t
3            y
 

Я пытаюсь выполнить прямое заполнение с помощью ffill. Это не работает

  cols = df.columns[:4].tolist()
 df[cols] = df[cols].ffill()
 

Я тоже пытался :

 df[cols] = df[cols].fillna(method='ffill')
 

Но она не наполняется.
Является ли причиной этой проблемы пустые столбцы в данных?

Данные высмеиваются. Точные данные отличаются (содержат строки,числа и пустые столбцы)

желаемый o/p:

   A  B  C  E D
---------------
0 a  r  g    g
1 a  r  g    x
2 x  f  f    r
3 x  f  f    t
3 x  f  f    y
 

Комментарии:

1. Каков желаемый результат?

2. Каковы пустые значения во фрейме данных, пустые строки? или?

3. пустые строки…

Ответ №1:

Замените пустые значения в подмножестве столбцов на NaN :

 df[cols] = df[cols].replace('', np.nan).ffill()
 

Комментарии:

1. Может быть, несколько пробелов вместо пустых строк? df[cols] = df[cols].replace('s ', np.nan).ffill() работаешь?

Ответ №2:

Вы должны заменить пустые строки на np.NaN перед:

 df = df.replace('', np.NaN)
df[cols] = df[cols].ffill()
 

Ответ №3:

Заменить '' на np.nan первый:

 df[df='']=np.nan
df[cols] = df[cols].ffill()