Vorrei confrontare una colonna di un df con altri df. Le colonne sono nomi e cognomi. Vorrei verificare se una persona in un frame di dati si trova in un altro.
Vorrei confrontare una colonna di un df con altri df. Le colonne sono nomi e cognomi. Vorrei verificare se una persona in un frame di dati si trova in un altro.
Risposte:
Se vuoi controllare valori uguali su una determinata colonna diciamo Nome puoi unire entrambi i Dataframe con uno nuovo:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Penso che questo sia più efficiente e più veloce wherese hai un set di big data
Confronto di valori in due colonne diverse
Usando set, ottieni valori univoci in ogni colonna. L'intersezione di questi due insiemi fornirà i valori univoci in entrambe le colonne.
Esempio:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1['c2']).intersection(set(df2['c2']))
Produzione:
{2, 5}
Confronto tra i nomi delle colonne di due frame di dati
Nel caso in cui si stia tentando di confrontare i nomi delle colonne di due frame di dati:
Se df1e df2sono i due frame di dati:
set(df1.columns).intersection(set(df2.columns))
Ciò fornirà i nomi di colonna univoci contenuti in entrambi i frame di dati.
Esempio:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1.columns).intersection(set(df2.columns))
Produzione:
{'c2', 'c3'}