1
resposta

Juntando vários tabelas em uma.

Supondo que eu tenha 500 arquivos csv e eu queira juntar todos eles em uma única tabela do python (com pandas), como eu faria isso? É mais fácil que eu faça isso no excel (se é que tem como) ou no pandas?

1 resposta

Oii Felipe! Tudo bem contigo?

Imaginando a melhor das hipóteses, onde seus arquivos csv possuem todos os mesmos cabeçalhos, você poderá seguir uma das abordagens mostradas abaixo:

1 - Python e pandas

Você poderia começar importando todos esses dados utilizando um laço for. Supondo que seus arquivos estejam nomeados seguindo um padrão (exemplo: arquivo_1, arquivo_2,...), você poderia fazer o seguinte:

quantidade_de_arquivos = 500
lista_df_arquivos = []

for numero in range(1, quantidade_de_arquivos + 1):
  lista_df_arquivos.append(pd.read_csv(f'arquivo_{numero}.csv'))

Dessa forma você importaria todos seus arquivos e salvaria eles em uma lista de dataframes. Onde, nessa lista, cada posição corresponderia a um dos dataframes. Por exemplo: lista_df_arquivos[0] corresponde ao primeiro dataframe e assim por diante.

Na biblioteca pandas você vai encontrar diversos métodos de juntar dataframes. Cada um dos métodos possui suas especificidades. Vou deixar alguns deles aqui para você ver qual deles é mais interessante para seu caso:

  • concat: concatena dois dataframes;

  • append: acrescenta as linhas de um dataframe a outro dataframe;

  • join: junta os dataframes por meio das colunas;

  • merge: mescla os dataframes por meio de suas colunas ou índices.

O pandas possui um guia de usuário chamado Merge, join, concatenate e compare que mostra vários exemplos (em inglês) juntando dataframes utilizando os diferentes métodos dessa biblioteca.

Deixo aqui também esse artigo que fala sobre juntar dataframes:

2 - Excel

No excel também é possível importar esses dados e juntá-los todos de uma vez. Vou fazer um exemplo para que você possa ver como fazer:

Na aba Dados, acesse: Obter dados > De Arquivo > Da Pasta:

Print acessando o caminho Obter dados > De Arquivo > Da Pasta no excel

Em seguida deve aparecer uma parte para você selecionar o diretório da pasta onde estão seus arquivos:

Print da tela seguinte a anterior, na qual é selecionado o caminho da pasta que contém os arquivos

Após isso, serão mostrados os nomes dos arquivos que existem nessa pasta. Você pode clicar em Combinar > Combinar e Carregar em:

Print da tela seguinte onde são apresentados os arquivos que estão na pasta selecionada e acessando o caminho Combinar > Combinar e Carregar em

Depois disso, você deve selecionar a origem do seu arquivo para que o excel consiga identificar a codificação de caracteres dos seus dados. No caso dos dados que estou utilizando de exemplo, eles seguem a codificação UTF-8:

Print da tela onde deve ser escolhido a origem do arquivo

E, por fim, para finalizar, basta clicar em “OK” nessa tela e, na próxima pequena tela que aparecer, você também pode clicar em “OK”.

Em seguida seus dados serão apresentados na planilha. A primeira coluna apresenta o nome do arquivo que cada dado foi extraído, então, caso queira, você pode excluí-la.

Print da planilha resultante com os dados de todos os arquivos dispostos um embaixo do outro

Também existe uma outra forma bem prática e rápida de juntar esses arquivos por meio do terminal. Nesse link você pode encontrar um pequeno tutorial de como fazer isso.

É importante ressaltar que, caso seus arquivos csv tenham cabeçalhos diferentes, no momento de fazer a importação deles, pode ser que você tenha um maior trabalho para organizá-los.

Espero que tenha ajudado. Qualquer dúvida estou à disposição.

Bons estudos!