Подходил ли этот подход к тому, что вы ищете?
от вопрос уже есть ответ здесь:
Панды Слияния 101 1 ответУ меня есть два кадра данных,
df1 = pd.DataFrame({'A': ['A1', 'A1', 'A2', 'A3'],
'B': ['121', '345', '123', '146'],
'C': ['K0', 'K1', 'K0', 'K1']})
df2 = pd.DataFrame({'A': ['A1', 'A3'],
'BB': ['B0', 'B3'],
'CC': ['121', '345'],
'DD': ['D0', 'D1']})
Теперь мне нужно получить похожие строки из столбца A и B из df1 и столбца A и CC из df2. И поэтому я попробовал возможные варианты слияния, такие как:
both_DFS=pd.merge(df1,df2, how='left',left_on=['A','B'],right_on=['A','CC'])
и это не даст мне информацию о строке из df2 dataframe, что мне и нужно. Это означает, что у меня есть все имена столбцов из df2, но строки просто пустые или Nan.
И тогда я попробовал:
Both_DFs=pd.merge(df1,df2, how='left',left_on=['A','B'],right_on=['A','CC'])[['A','B','CC']]
И это дает мне ошибку как,
KeyError: "['B'] not in index"
Я стремлюсь объединить Dataframe со всеми столбцами из df1 и df2. Любые предложения будут отличными
Желаемый вывод:
Both_DFs
A B C BB CC DD
0 A1 121 K0 B0 121 D0
Поэтому в моих фреймах данных (df1 и df2) только одна строка имеет точное совпадение для обоих интересующих столбцов. То есть столбцы A и B из df1 имеют только одну строку, точно совпадающую со строками в столбцах A и CC в df2