Gostaria de comparar uma coluna de um df com outros df's. As colunas são nomes e sobrenomes. Eu gostaria de verificar se uma pessoa em um quadro de dados está em outro.
Gostaria de comparar uma coluna de um df com outros df's. As colunas são nomes e sobrenomes. Eu gostaria de verificar se uma pessoa em um quadro de dados está em outro.
Respostas:
Se você deseja verificar valores iguais em uma determinada coluna, digamos Nome, você pode mesclar os dois Dataframes a um novo:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Eu acho que isso é mais eficiente e mais rápido do que where
se você tiver um grande conjunto de dados
Comparando valores em duas colunas diferentes
Usando set, obtenha valores exclusivos em cada coluna. A interseção desses dois conjuntos fornecerá os valores exclusivos nas duas colunas.
Exemplo:
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']))
Saída:
{2, 5}
Comparando nomes de colunas de dois quadros de dados
Caso você esteja tentando comparar os nomes de colunas de dois quadros de dados:
Se df1
e df2
são os dois quadros de dados:
set(df1.columns).intersection(set(df2.columns))
Isso fornecerá os nomes de colunas exclusivos que estão contidos nos dois quadros de dados.
Exemplo:
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))
Saída:
{'c2', 'c3'}