2017-06-16 8 views
1

Ich habe eine grundlegende Frage über die Zusammenführung von Datenrahmen. Nachdem ich zwei Daten zusammengeführt habe, gibt es eine Möglichkeit, nur wenige Spalten im Ergebnis auszuwählen.Python Pandas Dataframe zusammenführen und nur wenige Spalten auswählen

ein Beispiel aus der Dokumentation Einnahme kommt

https://pandas.pydata.org/pandas-docs/stable/merging.html#

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'], 
        'key2': ['K0', 'K1', 'K0', 'K1'], 
        'A': ['A0', 'A1', 'A2', 'A3'], 
        'B': ['B0', 'B1', 'B2', 'B3']}) 


right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'], 
          'key2': ['K0', 'K0', 'K0', 'K0'], 
          'C': ['C0', 'C1', 'C2', 'C3'], 
          'D': ['D0', 'D1', 'D2', 'D3']}) 



result = pd.merge(left, right, on=['key1', 'key2']) 

Ergebnis wie:

A B key1 key2 C D 
0 A0 B0 K0 K0 C0 D0 
1 A2 B2 K1 K0 C1 D1 
2 A2 B2 K1 K0 C2 D2 
None 

Gibt es eine Weise, die ich nur Spalte 'C' wählte aus 'richtigen' Datenrahmen?

A B key1 key2 C 
0 A0 B0 K0 K0 C0 
1 A2 B2 K1 K0 C1 
2 A2 B2 K1 K0 C2 
None 

Antwort

1
result = pd.merge(left, right[['key1','key2','C']], on=['key1', 'key2']) 

ODER

right.merge(left, on=['key1','key2'])[['A','B','C','key1','key2']] 
+0

Großen: Zum Beispiel würde ich mein Ergebnis wie sein mag. Ich sehe, dass Sie den richtigen Datenrahmen für Spalten gefiltert haben. – ProgSky

Verwandte Themen