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']})
ich durch Hinzufügen Spalte diese beiden Datenrahmen anschließen möchten zwei Datenrahmen fusionieren DD
-left
. Die Werte von DD
sollten basierend auf Vergleichen von A
und AA
, B
und BB
, C
und CC
ausgewählt werden.Wie basierend auf unterschiedlichen Spaltennamen
Der einfache Beitritt Fall wäre wie unten gezeigt, aber in meinem Fall muss ich Spalten mit unterschiedlichen Namen vergleichen, und dann möchte ich nur DD
zu right
hinzufügen.
result = left.join(right, on='DD')
sollte das Ergebnis sein:
result = pd.DataFrame({'A': ['A1', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['K0', 'K1', 'K0', 'K1'],
'DD': ['D0', NaN, NaN, 'D1']})
Benötige ich auch Spalten von 'left' zu normalisieren? – JoeBlack
@JoeBlack Der obige Code ist Arbeitscode. aber es hängt davon ab, was Ihr reales Leben Beispiel ist (und warum die gleichen Spalten in verschiedenen Datenrahmen unterschiedlich beschriftet sind, für mich sieht das wie etwas aus, das ich vor dem Zusammenführen/Starten von Berechnungen korrigieren möchte). –