2016-07-04 5 views
0

ich zwei Datenrahmen haben, wie folgendPandas: Steigen Sie ein Datenrahmen auf ausgewählten Spalten

Data Set A 
ID type msg 
1 High Lets do 
2 Low whats it 
3 Medium thats it 

Data Set B 
ID Accounttype 
2 Facebook 
3 Linkedin 

Wie kann ich eine aktualisierte Tabelle in Pandas kommen mit Hilfe bekommen, sollte es wie aussehen eine

Updated DatasetA 

ID Account type msg 
1   High Lets do 
2 Facebook Low whats it 
3 Linkedin Medium thats it 

Ich kann es einfach in SQL mit Update und inneren Join tun, wie es in Pandas durchzuführen, habe ich versucht, es zu tun, aber die meisten Operationen für append/merge. Jede Hilfe wird geschätzt werden

+0

Können Sie posten, was Sie versucht haben, da es vielleicht eine einfache Lösung ist, denke ich, dass A.merge (B, wie = 'links') funktionieren sollte – EdChum

+0

A.update (andere, Join = 'innere') –

+0

so Funktioniert 'A.merge (anders, wie = 'links')? – EdChum

Antwort

1

Versuchen Sie Folgendes:

df4 

# ID type  msg 
# 0 1 High Letsdo 
# 1 2  Low whatsit 
# 2 3 Medium thatsit 

df3: 

#   ID Accounttype xxx 
#  0 2 Facebook 24 
#  1 3 Linkedin 44 

    df4.merge(df3[['ID','Accounttype']],how='left').fillna("") 

# ID type  msg Accounttype 
# 0 1 High Letsdo    
# 1 2  Low whatsit Facebook 
# 2 3 Medium thatsit Linkedin 
+0

Macht vollständigen Sinn, Danke Merlin –

0

scheint es keine direkte Weg ist, es zu tun, so folgt

vorgeschlagen
a=b.merge(account,how='left',on='ID') 

eine Liste der Spalten erstellen Sie in Enddaten möchten gesetzt

list=['ID','Account','type','msg'] 

final=a[[col for col in list if col in b.columns]] 

Es wird Geben Sie nur die gewünschten Spalten nach dem linken Join