Рассмотрим два dataframes:Панды: Объединить две dataframe колонны
df_a = pd.DataFrame([
['a', 1],
['b', 2],
['c', NaN],
], columns=['name', 'value'])
df_b = pd.DataFrame([
['a', 1],
['b', NaN],
['c', 3],
['d', 4]
], columns=['name', 'value'])
Так выглядит как
# df_a
name value
0 a 1
1 b 2
2 c NaN
# df_b
name value
0 a 1
1 b NaN
2 c 3
3 d 4
Я хочу, чтобы объединить эти два dataframes и заполнить значения NaN в value
колонке с существующим значения в другом столбце. Другими словами, я хочу от:
# DESIRED RESULT
name value
0 a 1
1 b 2
2 c 3
3 d 4
Конечно, я могу сделать это с помощью пользовательских .map
или .apply
, но я хочу решение, которое использует merge
или тому подобное, не писать пользовательскую функцию слияния. Как это может быть сделано?
'combine_first' отлично работает! Благодарю. Однако, 'fillna' и' update' не работают для внешнего соединения - оба будут заполнять только те значения, которые существуют в вызывающем фреймворке. Например, df_a.fillna (df_b) забывает строку 'd'. То же самое с 'update'. Они не являются общим решением, если вы не можете сделать определенные предположения о своих данных. – tyleha