Wie kann ich den Unterschied zwischen zwei Spalten mit demselben Namen in zwei Datenrahmen erkennen? Ich meine, ich habe Datenframe A mit einer Spalte namens X und Datenframe B mit Spalte namens X, wenn ich mache, bekomme ich die gemeinsamen X-Werte von A und B, aber wie kann ich die "nicht-gemeinsamen" erhalten ?"Anti-Merge" in Pandas (Python)
7
A
Antwort
14
Wenn Sie den Merge Typ how='outer'
und indicator=True
ändern wird dies eine Spalte hinzufügen, Ihnen zu sagen, ob die Werte sind links/beide/rechts nur:
In [2]:
A = pd.DataFrame({'x':np.arange(5)})
B = pd.DataFrame({'x':np.arange(3,8)})
print(A)
print(B)
x
0 0
1 1
2 2
3 3
4 4
x
0 3
1 4
2 5
3 6
4 7
In [3]:
pd.merge(A,B, how='outer', indicator=True)
Out[3]:
x _merge
0 0.0 left_only
1 1.0 left_only
2 2.0 left_only
3 3.0 both
4 4.0 both
5 5.0 right_only
6 6.0 right_only
7 7.0 right_only
können Sie dann auswählen, die resultierende fusionierte df auf die _merge
col:
In [4]:
merged = pd.merge(A,B, how='outer', indicator=True)
merged[merged['_merge'] == 'left_only']
Out[4]:
x _merge
0 0.0 left_only
1 1.0 left_only
2 2.0 left_only
Sie auch isin
und negieren die Maskenwerte verwenden können, finden nicht in B:
In [5]:
A[~A['x'].isin(B['x'])]
Out[5]:
x
0 0
1 1
2 2
Verwandte Themen
- 1. Zusammenfassung Datenrahmen in Pandas - Python
- 2. In Python Pandas, boolesche Operation
- 3. Sortierreihen mit Pandas in Python
- 4. äußere Verbindung in Python Pandas
- 5. DataFrame-Umwandlung in Python-Pandas
- 6. Pandas Datenrahmen Konvertieren in Python
- 7. Keine Spaltennamen in Pandas Python
- 8. Pandas/Python - Excel Datenmanipulation
- 9. Python/Pandas: Übersichtstabelle
- 10. Python pandas groupby() Ergebnis
- 11. Python Pandas inner join
- 12. Gruppierung Zeilen Python Pandas
- 13. Python Pandas Inferenzspalte Datentypen
- 14. Python: Stunden Pandas Zeitstempel
- 15. Python Pandas Ausgangsdatenrahmen gerundet
- 16. Python/Pandas: Pivot-Tabelle
- 17. Dataframe Spaltendaten - Pandas - Python
- 18. Python Pandas groupby Methode
- 19. Python Pandas Conditional Summiert
- 20. Python Pandas Zahlenbereich Binning
- 21. df.head() funktioniert manchmal nicht in Pandas, Python
- 22. Schreiben in CSV von DataFrame Python Pandas
- 23. Speichern der Spaltenreihenfolge in Python Pandas DataFrame
- 24. Trennelemente eines Pandas Datenrahmen in Python
- 25. if ... elif-Anweisung in Python/Pandas
- 26. Pandas-Modul und Python 3 in OSX
- 27. Eindeutige Werte in Dataframe Python Pandas
- 28. kein Attribut namens read_csv in pandas python
- 29. Aufteilen einer Datendatei in Python oder Pandas
- 30. Python Pandas: case-Anweisung in agg Funktion
Sie können einfach tun ~ ~ A ['X']. Isin (B ['X']) 'zu sehen, die Werte, die einzigartig sind für A und umgekehrt, um das Gegenteil zu tun – EdChum
Auch ich denke, dass' pd.merge (A, B, on = ['X'], Indikator = True, wie = 'outer') 'wird funktionieren, da dies' _merge 'col hinzufügt und dies die Werte 'left_only',' right_only' hat, um anzuzeigen, ob die Werte sind nur links/rechts – EdChum