Ich habe zwei DataFrames, die die gleichen Spaltennamen mit einigen übereinstimmenden Daten und einigen eindeutigen Daten haben.nur Outer Join Python Pandas
Ich möchte die Mitte ausschließen und nur speichern, was für beide DataFrames einzigartig ist.
Wie würde ich diese zwei Datenrahmen concat oder zusammenführen oder verbinden, um dies zu tun?
Zum Beispiel in diesem Bild, das ich nicht über die Mitte in diesem Bild, ich will beiden Seiten aber nicht in der Mitte:
Hier mein Code ist jetzt:
def query_to_df(query):
...
df_a = pd.DataFrame(data_a)
df_b = pd.DataFrame(data_b)
outer_results = pd.concat([df_a, df_b], axis=1, join='outer')
return df
Lassen Sie mich Ihnen ein Beispiel dafür geben, was ich brauche:
df_a =
col_a col_b col_c
a1 b1 c1
a2 b2 c2
df_b =
col_a col_b col_c
a2 b2 c2
a3 b3 c3
# they only share the 2nd row: a2 b2 c2
# so the outer result should be:
col_a col_b col_c col_a col_b col_c
a1 b1 c1 NA NA NA
NA NA NA a3 b3 c3
oder Ich würde mit 2 Datenrahmen
result_1 =
col_a col_b col_c
a1 b1 c1
result_2 =
col_a col_b col_c
a3 b3 c3
schließlich genauso glücklich sein, werden Sie feststellen, dass a2 b2 c2
ausgeschlossen wurden, weil alle Spalten übereinstimmen - wie ich fest, dass ich auf Basis anschließen möchten, auf alle Spalten, nicht nur 1? Wenn df_a
gehabt hätte, würde ich diese Reihe auch in result_1
haben wollen.
Ich denke, Sie suchen nach 'pd.merge' nicht' pd.concat'. Eigentlich, nicht ganz sicher, wie du verschmelzest ... Ich denke, eine genauere Beschreibung ist, dass du Zeilen bekommst, die nur in einer Tabelle vorhanden sind. Selbst dann bin ich nicht sicher, warum du sie nebeneinander hast, denn jetzt hast du 2 'col_a' und' col_b' und 'col_c' – AsheKetchum