Как заменить значениями на соседний столбец, используя pandas - PullRequest
1 голос
/ 01 мая 2020

У меня есть датафрейм, df1,

После внешнего соединения df ниже

df1 имеет 4 столбца ['A', 'B', 'C', 'D' ]

ID,A,B,C,D
1,Nan,Nan,c,d
1,a,b,c,d
  • Мне нужно заменить значения Nan в df ['A'] на df ['C']
  • Мне нужно заменить Nan значения в df ['B'] с df ['D']

ожидаемое значение ниже

ID,A,B,C,D
1,c,d,c,d
1,a,b,c,d

в первой строке df ['A' ] заменен на df ['C'], если df ['A'], то он должен получить только df ['A']

в первой строке df ['B'], замененный на df ['D'], если df ['B'], то он должен получить только df ['D']

1 Ответ

2 голосов
/ 01 мая 2020

Вам необходимо заполнить столбец вторым после столбца, один из способов - fillna, указав параметр value:

df.A.fillna(value=df.C, inplace=True)
df.B.fillna(value=df.D, inplace=True)

Если по какой-то причине вы имеет много столбцов и хочет продолжать заполнять NaN, используя значения во втором после столбца, а затем использовать для l oop в первых n-2 столбцах

columns = ['A', 'B', 'C', 'D']

for i in range(len(columns)-2):
    df[columns[i]].fillna(df[columns[i+2]], inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...