Когда столбец данных пуст, назначьте его другому столбцу
ниже моего фрейма данных:
aaa ccc 0 4.0 3 1 NaN 2 2 NaN 3 3 1.0 2
я ожидаю, что датафрейм:
aaa ccc 0 4 3 1 2 2 2 3 3 3 1 2
Заранее спасибо
Использование pandas.DataFrame.bfill с axis=1:
pandas.DataFrame.bfill
axis=1
df.bfill(1)
Выход:
aaa ccc 0 4.0 3.0 1 2.0 2.0 2 3.0 3.0 3 1.0 2.0
pandas.DataFrame.fillna
Может принимать словарь, который определяет, чем заполнять каждый столбец.downcast='infer' при необходимости прекратит приведение числовых значений.
downcast='infer'
df.fillna({'aaa': df.ccc}, downcast='infer') aaa ccc 0 4 3 1 2 2 2 3 3 3 1 2
Вы можете использовать replace:
replace
import numpy as np df['aaa'] = df['aaa'].replace(np.nan, df['ccc'])
используйте np.where, чтобы заполнить nan
import numpy as np df['aaa'] = np.where(df['aaa'].isnull(),df['ccc'],df['aaa'])
Я надеюсь, что это решит вашу проблему