2016-04-27 9 views
0

Ich bin mir sicher, ich mache etwas falsch, aber es ist nicht offensichtlich für mich.Join mehrere Datenframes und doppelte Spalten

Ich habe viele Datenframes, denen ich beitreten möchte. Ich bin bei pd.merge linken verbindet ich dies tun als

Database=pd.merge(df1, df2, left_on='key', Right_on='key',how='left') 

Database=pd.merge(df3, df4, left_on='key', Right_on='key',how='left') 

Wiederholung aber immer wieder in der Datenbank Datenrahmen zu schreiben, alles funktioniert gut, aber am Ende habe ich mehrere Duplikate, dh df1_code als df1_code_x wiederholt wurde , df1_code_x_x, was das resultierende df sehr groß macht. Ich versuchte;

Database.T.drop_duplicates().T 

aber dies führte zu einem cms Speicherfehler, wie kann ich die Spalten Duplizieren zu starten mit zu stoppen.

+0

Können Sie ein reproduzierbares Beispiel nennen? – IanS

Antwort

0

Ich glaube nicht, dass Sie die Duplikate vermeiden können, zumindest nicht mit Hilfe von pd.merge mit irgendwelchen Argumenten.

pd.DataFrame.drop_duplicates() scheinen in doppelte Datensätze zu löschen. Das erklärt, warum Sie transponieren und versuchen drop_duplicates. Könnte es eine Idee sein, sie nach jedem Merge anstatt einmal am Ende zu verwenden?

Auch, nach Ihren Beispielaufrufen müssen Sie nicht wirklich right_on und left_on Argumente definieren. Beide scheinen die gleichen zu sein, so kann man sich die Eingabe speichern und Tun dies:

Database = df1.merge(df2, how='left', on='key') 
Database = df3.merge(df4, how='left', on='key') 
... 

hoffe ich, dass hilft

Verwandte Themen