1
resposta

Como juntar varios dataframes com a coluna "data" em comum?

Tenho 4 dataframes que relaciona a data e o numero de mortes em 4 países diferentes. Queria juntar os 4 dataframes em uma só para plotar os graficos de numero de mortes de cada país.

Fiz os seguintes tratamentos de dados para cada dataframe:

dados_japao = pd.DataFrame(pd.read_csv("dados_japao.csv")[['Data']+['Número de mortes']])
dados_japao['Data'] = pd.to_datetime(dados_japao['Data']).dt.date

dados_brasil = pd.DataFrame(pd.read_csv("dados_brasil.csv")[['Data']+['Número de mortes']])
dados_brasil['Data'] = pd.to_datetime(dados_brasil['Data']).dt.date

dados_alemanha = pd.DataFrame(pd.read_csv("dados_alemanha.csv")[['Data']+['Número de mortes']])
dados_alemanha['Data'] = pd.to_datetime(dados_alemanha['Data']).dt.date

dados_africadosul = pd.DataFrame(pd.read_csv("dados_africadosul.csv")[['Data']+['Número de mortes']])
dados_africadosul['Data'] = pd.to_datetime(dados_africadosul['Data']).dt.date

Para juntar em um unico dataframe usei o pd.merge duas vezes (já que o merge so junta 2 dataframes)

dados_br_jp= pd.merge(dados_brasil,  dados_japao, how='outer', on='Date')
dados_al_af= pd.merge(dados_alemanha, dados_africadosul, how='outer', on= 'Date'

dados= pd.merge(dados_br_jp, dados_al_af, hor='outer', on='Date')

Entretanto apos o ultimo merge, o dataframe dados só mostrou os titulos das colunas. Qual foi o erro aqui? Teria um outro metodo de juntar multiplos dataframes em uma so com a coluna "Data" em comum?

1 resposta

Bom dia Keigo, tudo bem? Espero que sim!

Pelo meu entendimento, você quer colocar mais dados abaixo dos dados que já possui. Uma coluna para o nome do país, uma para a data, e outra para número de mortes.

Como os novos registros têm as mesmas características, seria mais ideal você usar o concat(), para acrescentar valores abaixo dos outros.

Vou deixar aqui o link da documentação do método concat(): Documentação do método concat()

O merge seria mais indicado quando você quer adicionar mais colunas à esquerda ou a direita, para adicionar novas características para os seus países. Por exemplo:

Suponha que você tenha uma tabela com países, número de mortes, e data. Em outra tabela você tem informações como quantidade de habitantes, PIB, e nome do país. Nesse caso você utilizaria o merge() para acrescentar essas características com base no nome do país, e elas seriam acrescidas como novas colunas.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!