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
2 curtidas
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