2016-11-01 3 views
1

Ich habe zwei pandas.DataFrame:Pandas + Python: fusionieren 2 Datenrahmen Zelle für Zelle

values = pandas.DataFrame([[0, 1], [7,5]], columns=["a", "b"], index=[1, 2]) 
info = pandas.DataFrame([["foo", "bar"], ["few", "tar"]], columns=["a", "b"], index=[1, 2]) 

values und info sind Einstellungen für Benutzer so möchte ich durch die Zusammenlegung der Datenrahmen Zelle für Zelle auf alle Spalten ein Diagramm drucken

a   b 
1 0 : foo  1 : bar 
2 7 : few  5 : tar 

Wie kann ich dies tun, ohne eine for-Schleife: so etwas zu bekommen?

Antwort

1

Sie können values Datentyp str konvertieren und die beiden Datenrahmen mit : als Trennzeichen hinzufügen.

values.apply(lambda col: col.astype(str)) + " : " + info 

# a  b 
#1 0 : foo 1 : bar 
#2 7 : few 5 : tar 
0

Sie können die in Pandas integrierte .merge-Methode verwenden.

für Ihren Fall So wäre es so etwas wie:

pd.merge(values, info, how='inner', on='user)

Es wie ein Join in SQL arbeitet.

Es gibt eine Reihe von Beispiel in diesem Artikel:

http://pandas.pydata.org/pandas-docs/stable/merging.html

+0

Es gibt einen leeren Datenrahmen zurück –

Verwandte Themen