Заполнить NaN значения столбца в таблице данных из другой таблицы данных панд
У меня есть таблица в pandas df
main_id p_id_y score
1 1 123 0.617523
0 2 456 0.617523
0 3 789 NaN
0 4 987 NaN
1 5 654 NaN
Также у меня есть другой фрейм данных df2.
который имеет столбец
p_id score
123 1.3
456 4.6
789 0.4
987 1.1
654 3.2
Я должен заполнить все оценки для всех p_id_y which is NaN с соответствующим счетом p_id в df2.
Мой окончательный вывод должен быть.
main_id p_id_y score
1 1 123 0.617523
0 2 456 0.617523
0 3 789 0.4
0 4 987 1.1
1 5 654 3.2
Любые идеи, как этого добиться?
я думал использовать это
df['score'] = df['score'].fillna(something)
2 ответов:
Я думаю, что вы можете использовать
combine_firstилиfillna, но сначала ...set_indexдля выравнивания данных:df1 = df1.set_index('p_id_y') df1['score'] = df1['score'].combine_first(df2.set_index('p_id')['score']) #df1['score'] = df1['score'].fillna(df2.set_index('p_id')['score']) print (df1.reset_index()) p_id_y main_id score 0 123 1 0.617523 1 456 2 0.617523 2 789 3 0.400000 3 987 4 1.100000 4 654 5 3.200000

Comments