#python #pandas #dataframe #merge #left-join
#python #pandas #фрейм данных #слияние #левое соединение
Вопрос:
Я хочу объединить два фрейма данных в python с pandas. Вот как они выглядят:
df_a
Nr1
1 234
2 256
3 678
df_b
Nr1 Nr2
1 567 9.345
2 256 6.678
3 678 4.123
4 478 3.456
Я пытаюсь выполнить «левое соединение», чтобы получить фрейм данных, который выглядит следующим образом:
Nr1 Nr2
1 234 nan
2 256 6.678
3 678 4.123
Вот что я пробовал до сих пор:
df_a.merge(df_b, on='Nr1', how='left')
или
df_a.merge(df_b, left_on='Nr1', right_on='Nr1', how='left')
Однако это не работает — результаты выглядят так:
Nr1 Nr2
1 234 nan
2 256 0.000
3 678 0.000
Оба Nr1
столбца имеют один и тот же dtype. Почему в столбце есть нули Nr2
?
Комментарии:
1. Я не могу воспроизвести ваш вопрос. Оба
merge
работают правильно и приводят к ожидаемому результату.
Ответ №1:
Попробуйте это
df_a.merge(df_b, left_on='Nr1', right_on='Nr1', how='inner' )