Сравнение двух столбцов в панде DataFrame и заполнение пропущенных значений для одного из них - PullRequest
1 голос
/ 26 мая 2019

У меня есть кадр с 2 столбцами с пропущенными значениями:

   name   code
0   A      12
1   B      39
2   C      23
3   A      12
4   NaN    12
5   NaN    39
6   C      23
7   NaN    39

Мне нужно заполнить пропущенное значение следующим образом:

   name   code
0   A      12
1   B      39
2   C      23
3   A      12
4   A      12
5   B      39
6   C      23
7   B      39

1 Ответ

0 голосов
/ 26 мая 2019

Создайте обратное сопоставление кодов с ненулевыми именами, затем используйте это для сопоставления отсутствующих значений:

mapping = dict(df.dropna()[['code', 'name']].values)
# mapping = df.set_index('code')['name'].dropna().to_dict()

df['name'] = df['name'].fillna(df['code'].map(mapping))
df

  name  code
0    A    12
1    B    39
2    C    23
3    A    12
4    A    12
5    B    39
6    C    23
7    B    39

Вы также можете выполнить обновление на месте.

df['name'].update(df['code'].map(mapping))
df

  name  code
0    A    12
1    B    39
2    C    23
3    A    12
4    A    12
5    B    39
6    C    23
7    B    39
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...