Comparar dois CSVs e verificar nomes que se repetem

Gostaria de comparar dois CSVs e criar uma nova tabela apenas com os nomes que se repetem. Como posso fazer isso?

Eu tentei:
dfRibeiraoNomes['Recebeu Auxilio'] = np.where(dfRibeiraoNomes['Unnamed: 1'] == ['NOME BENEFICIÁRIO'], 'True', 'False')

Porém retorna:
ValueError: Lengths must match to compare

Eu separei somente as colunas que desejo comparar em ambos os CSVs. Como posso proceder a partir daí?

2 Curtidas

Oi, Gustavo. Tudo bem?

Eu acho que você quer cruzar os dois CSVs considerando uma coluna de cada arquivo, certo?
Se for isso, eu acredito que, no Python, você pode usar o join, da biblioteca Pandas.

No R, eu uso bastante a função left_join, com exemplos aqui.
Se for algo simples, talvez este site de cruzamento de arquivos ajude.

2 Curtidas

Você acredita que o R fica melhor para operações como essa? Como ele trabalha com grandes arquivos?

E amanhã vou dar um olhada nas cosias que você me respondeu! Obrigado!

Olá @gustavomadmax

Uma coisa legal para ajudar os colegas é sempre que possível publicar qual a ferramenta ou linguagem de programação da sua duvida e também um resumo dos seus dados, assim eles podem compreender melhor e responder mais rápido

Você está usando numpy (pacote de funções matemáticas do Python), correto? No Python o comando merge do pandas acho que poderia até ser mais simples

import pandas as pd

# No lugar dos seus CSVs vou representar aqui dois dataframes
# Os dois têm uma chave de string em comum - a coluna "nome"

# Dataframe1 
dicionario = {"idade": [89, 12, 40, 31],
             "time": ["Portuguesa", "São Paulo", "Flamengo", "Corinthians"],
             "nome": ["Joaquim Oliveira", "Carlos da Silva", "Chico dos Santos", "Claudia Schultz"],
                    }
df_1 = pd.DataFrame(dicionario)

# Dataframe2
dicionario = {"sexo": ["feminino", "masculino", "masculino", "feminino"],
             "veiculo": ["bicicleta", "patinete", "carro", "carro"],
             "nome": ["Maria Souza", "Carlos da Silva", "Chico dos Santos", "Claudia Schultz"],
                    }
df_2 = pd.DataFrame(dicionario)

# Agora eu uno os dois dataframes, apenas nos casos que possuem nomes iguais
novo_df = pd.merge(df_1, df_2, left_on='nome', right_on='nome')
novo_df.info()
<class 'pandas.core.frame.DataFrame'>                                         
Int64Index: 3 entries, 0 to 2                                                 
Data columns (total 5 columns):                                               
 #   Column   Non-Null Count  Dtype                                           
---  ------   --------------  -----                                           
 0   idade    3 non-null      int64                                           
 1   time     3 non-null      object                                          
 2   nome     3 non-null      object                                          
 3   sexo     3 non-null      object                                          
 4   veiculo  3 non-null      object                                          
dtypes: int64(1), object(4)                                                   
memory usage: 96.0+ bytes  

Aqui mais sobre a documentação do merge

1 Curtida

Oi Gustavo, talvez se for um csv que você consiga abrir no Excel ou Google Sheets a fórmula VLOOKUP pode ser útil, esse tutorial explica como usar:

https://www.dadosfinos.info/2014/05/cruzar-dados-com-excel-como-usar.html

2 Curtidas

Amigos, consegui fazer o queria. Obrigado a todos pela ajuda. Quem quiser ver o que fiz: https://github.com/manogusp/FiltroAuxilioEmergencial

2 Curtidas