Frage wie man zwei Datenrahmen in Python Pandas kombiniert


Ich benutze Python Pandas Datenrahmen, ich habe einen anfänglichen Datenrahmen sagen D. Ich extrahiere zwei Datenrahmen daraus wie folgt:

A = D[D.label == k]

B = D[D.label != k]

dann ändere ich die Beschriftung in A und B:

A.label = 1

B.label = -1

Ich möchte A und B kombinieren, damit ich sie als einen Datenrahmen so etwas wie Union haben kann. Die Reihenfolge der Daten ist nicht wichtig, aber wenn wir A und B von D abtasten, behalten sie ihre Indizes von D.


36
2017-10-11 23:53


Ursprung


Antworten:


Ich glaube, du kannst das benutzen append Methode

bigdata = data1.append(data2, ignore_index=True)

um ihre Indizes zu behalten benutze einfach nicht die ignore_index Stichwort ...


65
2017-10-12 00:07



Sie können auch verwenden pd.concat, was besonders hilfreich ist, wenn Sie mehr als zwei Datenrahmen verbinden:

bigdata = pd.concat([data1, data2], ignore_index=True)

37
2018-05-31 11:47



Ich dachte, dass ich das hier hinzufügen könnte, wenn jemand es nützlich findet. @ostrokach hat bereits erwähnt, wie Sie die Datenrahmen über die Zeilen hinweg zusammenführen können

df_row_merged = pd.concat([df_a, df_b], ignore_index=True)

Um über mehrere Spalten hinweg zusammenzuführen, können Sie die folgende Syntax verwenden:

df_col_merged =pd.concat([df_a, df_b], axis=1)

15
2017-09-22 08:38



Es gibt eine andere Lösung für den Fall, dass Sie mit Big Data arbeiten und mehrere Datensätze verketten müssen. concat kann leistungsintensiv sein. Wenn Sie also nicht jedes Mal ein neues df erstellen möchten, können Sie stattdessen a verwenden Listenverständnis:

frames = [ process_file(f) for f in dataset_files ]
result = pd.append(frames)

(wie erwähnt hier in der Dokumentation am Ende des Abschnitts):

Hinweis: Es ist jedoch bemerkenswert, dass concat (und deshalb append)   macht eine vollständige Kopie der Daten, und diese ständig wiederverwenden   Funktion kann einen erheblichen Leistungseinbruch erzeugen. Wenn Sie verwenden müssen   die Operation über mehrere Datensätze, verwenden Sie ein Listenverständnis.


3
2017-10-10 07:53