import pandas as pd
left = pd.DataFrame({'A': ['A1', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['K0', 'K1', 'K0', 'K1']})
right = pd.DataFrame({'AA': ['A1', 'A3'],
'BB': ['B0', 'B3'],
'CC': ['K0', 'K1'],
'DD': ['D0', 'D1']})
Я хочу, чтобы соединить эти два кадра данных путем добавления столбца DD
в left
. Значения DD
следует выбирать на основании сравнения A
и AA
, B
и BB
, C
и CC
.Как объединить два кадра данных на основе различных имен столбцов
Простой соединительный корпус будет таким, как показано ниже, но в моем случае мне нужно сравнить столбцы с разными именами, а затем я хочу только добавить DD
в right
.
result = left.join(right, on='DD')
Результат должен быть:
result = pd.DataFrame({'A': ['A1', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['K0', 'K1', 'K0', 'K1'],
'DD': ['D0', NaN, NaN, 'D1']})
ли мне нужно нормализовать столбцы 'left'? – JoeBlack
@JoeBlack код выше рабочий код. но это зависит от того, каков ваш реальный пример жизни (и почему одни и те же столбцы по-разному помечены в разных DataFrames, для меня это похоже на то, что я хотел бы исправить перед слиянием/началом вычислений). –