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?
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?
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:
Em seguida deve aparecer uma parte para você selecionar o diretório da pasta onde estão seus arquivos:
Após isso, serão mostrados os nomes dos arquivos que existem nessa pasta. Você pode clicar em 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:
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.
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!