Неожиданный результат слияния Panda

#python #pandas

#python #панды

Вопрос:

У меня есть два фрейма данных, созданных с помощью pandas. Я не знаю, как объединить два фрейма данных в определенном формате, используя общий столбец.

Я использовал

 pd.merge(dataframe1,dataframe2,on='A',how='outer')
  

но это не дает ожидаемого результата.

Ожидаемый результат:

 dataframe 1:        dataframe 2:       Result:

A B                 A                   A B
0 1                 0                   0 1
1 0                 1                   1 0
2 0                 2                   2 0
4 1                 3                   3 Nan
                    5                   4 1
                                        5 Nan

  

Полученный результат:

 dataframe 1:        dataframe 2:       Result:

A B                 A                   A B
0 1                 0                   0 1
1 0                 1                   1 0
2 0                 2                   2 0
4 1                 3                   3 1
                    5                   4 Nan
                                        5 Nan

  

Комментарии:

1. Я думаю, что ваш how параметр должен быть изменен pandas.pydata.org/pandas-docs/stable/reference/api /…

2. Ваш код действительно работает для меня, но я определил фрейм данных немного иначе, пожалуйста, проверьте мой ответ ниже!

Ответ №1:

Ваш код работает для меня, просто я определил фреймы данных по-другому

 import pandas as pd

# initialize list of lists
data1 = [[0, 1], [1, 0], [2, 0], [4,1]]
df1 = pd.DataFrame(data1, columns = ['A', 'B'])
data2 = [[0], [1], [2], [3], [5]]
df2 = pd.DataFrame(data2, columns = ['A'])
print(pd.merge(df1,df2,how='outer', on='A'))
#   A    B
#0  0  1.0
#1  1  0.0
#2  2  0.0
#3  4  1.0
#4  3  NaN
#5  5  NaN
  

Ответ №2:

Всегда проверяйте данные.Использованный показал мне, что пробелов нет, но затем отправил файл с пробелами (он отправил версию без нажатия кнопки сохранить), добавленную .str.strip() к элементу данных, и все начало работать.

Никогда не доверяйте никаким входным данным. Всегда проверяйте.

Комментарии:

1. Как только вы устраните все другие варианты, очевидная проблема станет наиболее вероятным виновником.