#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()