2016-09-26 12 views
1

Ich habe zwei Datenrahmen df1 und df2 aus verschiedenen Datenbanken. Jedes Element in den Datenrahmen wird durch eine id identifiziert.Join Datenrahmen durch Spaltenwerte Pandas

df1 = pd.DataFrame({'id':[10,20,30,50,100,110],'cost':[100,0,300,570,400,140]}) 

df2 = pd.DataFrame({'id':[10,23,30,58,100,110],'name':['a','b','j','d','k','g']}) 

gibt es einige gemeinsame Produkte in beiden Datenrahmen, in diesem Fall die mit den ids: 10,30,100,110. Ich mag diese Informationen in einem einzigen Datenrahmen fusionieren, wie diese:

df3 = pd.DataFrame({'id':[10,30,100,110],'name':['a','j','k','g'],'cost':[100,300,400,140]}) 

Ich habe versucht, es mit Wörterbuch und verschachtelten Schleifen zu tun, aber ich eine ziemlich große Menge an Datenhandling und es nimmt nur zu lange mach es so.

Antwort

2

Ich glaube, Sie merge verwenden können, Standardparameter how='inner' omited ist:

print (pd.merge(df1,df2,on='id')) 
    cost id name 
0 100 10 a 
1 300 30 j 
2 400 100 k 
3 140 110 g 
+0

Ich bin nicht das gleiche Ergebnis zu erzielen. Ich aktualisiere die Frage. –

+2

Es sieht aus wie Typo - Doppel 'df2'' print (pd.merge (df2, df2, on = 'id')) ' – jezrael

Verwandte Themen