1
resposta

Juntando dois data frames apenas com os campos que nao tem neles

Ola gente!

Preciso de uma ajuda, estou automatizando um relatório e preciso juntar dois data frames (planilhas que eu importo pro pandas) no pandas, sendo um o principal e o outro que possui sempre informações que não tem ainda o principal, mas que pode surgir algo repetido que tenha no princial, sendo necessário verificar para nao repetir o dado, exemplo:

df1(principal):

NOMECPFEMAIL
JUNINHO1234juninho@alura.com
ALISSON3456alisson@alura.com
PEDRO7890pedro@alura.com

df2:

NOMECPFEMAIL
PEDRO7890pedro@alura.com
LAURA5643laura@alura.com
TATI34331tati@alura.com

dfs unidos:

NOMECPFEMAIL
JUNINHO1234juninho@alura.com
ALISSON3456alisson@alura.com
PEDRO7890pedro@alura.com
LAURA5643laura@alura.com
TATI34331tati@alura.com

Como posso fazer isso.. Agradeço desde já!

1 resposta

Oii Victor Hugo! Tudo certinho?

Você pode utilizar o método concat para juntar os dataframes e a função drop_duplicates para excluir o que estiver repetido.

Vamos fazer isso com o exemplo que você trouxe para entendermos melhor.

Criando os dataframes que você trouxe como exemplo:

df1 = {
    'Nome': ['JUNINHO', 'ALISSON', 'PEDRO'],
    'CPF': [1234, 3456, 7890],
    'Email': ['juninho@alura.com', 'alisson@alura.com', 'pedro@alura.com'] 
}
df1 = pd.DataFrame(df1).set_index('Nome')

df2 = {
    'Nome': ['PEDRO', 'LAURA', 'TATI'],
    'CPF': [7890, 5643, 34331],
    'Email': ['pedro@alura.com', 'laura@alura.com', 'tati@alura.com'] 
}

df2 = pd.DataFrame(df2).set_index('Nome')

Utilizando o a função concat para unir os dataframes e o drop_duplicates para excluir as linhas repetidas:

df_junto = pd.concat([df1,df2]).drop_duplicates()
df_junto

E esse será seu resultado:

NOMECPFEMAIL
JUNINHO1234juninho@alura.com
ALISSON3456alisson@alura.com
PEDRO7890pedro@alura.com
LAURA5643laura@alura.com
TATI34331tati@alura.com

Deixo aqui o link das documentações (em inglês) dessas duas funções caso você queira explorar um pouquinho mais:

Espero que isso te ajude! Qualquer dúvida estarei por aqui :)

Bons estudos!