Come posso selezionare la differenza tra le colonne con lo stesso nome in due frame di dati? Voglio dire che ho dataframe A con una colonna chiamata X e dataframe B con la colonna chiamata X, se faccio pd.merge(A, B, on=['X'])
, otterrò i valori X comuni di A e B, ma come posso ottenere quelli "non comuni" ?"Anti-unione" in panda (Python)
7
A
risposta
14
Se si cambia il tipo di unione per how='outer'
e indicator=True
questo aggiungerà una colonna di dirvi se i valori sono lasciati/sia/destra solo:
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
È quindi possibile filtrare la risultante fuse df sulla _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
È inoltre possibile utilizzare isin
e negare la maschera di non trovare i valori in B:
In [5]:
A[~A['x'].isin(B['x'])]
Out[5]:
x
0 0
1 1
2 2
Problemi correlati
- 1. binning un dataframe in panda in Python
- 2. Groupby in Python Panda: Fast Way
- 3. Nessun nome di colonna in python panda
- 4. python panda rimuovono i duplicati in serie
- 5. Installazione panda modulo Python in Cloud9
- 6. Julia Dataframes vs Python panda
- 7. python panda rank per colonna
- 8. utilizzando panda in python per aggiungere file CSV in uno
- 9. Panda Python: raggruppa per in gruppo per e in media?
- 10. panda python - dividendo colonna da un'altra colonna
- 11. Eliminazione condizionale di duplicati python panda
- 12. Panda Python - Data Colonna Indice indice
- 13. Python: algoritmo mediana ponderata con i panda
- 14. Python - PIP installare panda, non lavorano
- 15. Definizioni ricorsive in panda
- 16. Python panda - filtra righe dopo groupby
- 17. Python panda: unione perde colonne categoriali
- 18. Ordinamento panda Python per multiindice e colonna
- 19. python panda: reverse df column order
- 20. Python: ridurre la precisione panda timestamp dataframe
- 21. I panda Python uniscono solo determinate colonne
- 22. Python panda il dataframe interpola dati mancanti
- 23. python panda: come evitare l'assegnazione concatenata
- 24. Python: valore NaN in Panda solo per un valore singolo
- 25. Plottaggio CDF di una serie di panda in python
- 26. lettura di un file di Excel in Python utilizzando panda
- 27. Python Panda 'applica' ritorna serie; non posso convertire in dataframe
- 28. Come confrontare panda DataFrame contro None in Python?
- 29. Python - trova indice intero di righe con NaN in panda
- 30. Equivalente più vicino di una variabile fattore in Panda Python
si può semplicemente fare '~ A ['X']. Isin (B ['X'])' per vedere i valori che sono univoci per A e invertire per fare il contrario – EdChum
Inoltre penso che 'pd.merge (A, B, on = ['X'], indicatore = True, how = 'outer') 'funzionerà come questo aggiunge' _merge' col e questo avrà valori 'left_only',' right_only' per indicare se i valori sono solo sinistra/destra – EdChum