Слияние фреймов данных в python

#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' )