#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. Как только вы устраните все другие варианты, очевидная проблема станет наиболее вероятным виновником.