Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tratamento dados Pandas- Unir dois dataframes

Boa noite!

Estou com 2 dataframes:

1º df tem 50k, 2 - ID e nome (50k linha e 2 colunas) 2º df tem 100k, 10 - varias colunas

Ou seja tamanhos diferentes.

Os dois df possuem uma coluna com o mesmo nome. Gostaria de adicionar uma coluna nova no df principal, onde sempre que encontrar o mesmo nome (tem nos dois df) traga essa coluna que eu preciso.

Isso não era para ser simples? Tente juntar usando:

df = pd.merge(df1,df2,on='full name') 
--- ficou com 180 linhas, apagou meu df inteiro
df7= df1.join(df2, on='full name') 
--- junto em baixo ficou maior e duplicado, se exclui duplicados não ajuda em nada.
df = pd.merge(df1,df2,how='outer') 
---- também excluiu meus dados.
for index2, row2 in df2.iterrows():
    for index1, row1 in df1.iterrows():
        if row2['full name'] == row1['full name']:
            row2['ID'] = row1['ID']            
            df2['index2'] = row2   
------ levou quase 2hs para ler o código e trouxe uma linha a mais inteira vazia com o numero certo de linhas, foi o que mais chegou perto.

Como eu posso juntar esses dois dataframes? Alguém consegue me ajudar please??

1 resposta
solução!

Partindo da suposição de que os dados do seu dataframe estão validados (e por questões de performance você provavelmente quer castar esse full name de string para algum tipo numérico):

O merge do pandas funciona exatamente como um join de sql. No seu caso, você quer adicionar colunas sem remover as linhas sem par , o que significa um left join. Isso é possível de ser feito usando o método merge dos dataframes.`

df_new = df1.merge(df2, on = "full name", how = "left")

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software