1
resposta

[Dúvida] Ler e concatenar vários arquivos csv

Gostaria de ler de um diretório vários arquivos csv com o pandas, cada um com duas colunas: uma é rótulo a outra é informação. Concatenar todos lado a lado após a leitura, sendo que o primeiro csv seria importado de forma completa e os outros apenas a segunda coluna, já que a primeira é rotulo.

1 resposta

Olá, Jonathan! Tudo bem?

Peço desculpa pela demora em responder o seu tópico.

Sua dúvida é bem interessante e comum em manipulação de dados. Vou te mostrar um exemplo de como você pode fazer isso usando a biblioteca pandas do Python.

Primeiro, você precisa importar a biblioteca pandas e a biblioteca os, que vai te ajudar a ler os arquivos do diretório:

import pandas as pd
import os

Depois, você pode criar uma lista com os nomes dos arquivos que você quer ler. Supondo que todos os arquivos estejam no mesmo diretório e que todos tenham a extensão .csv, você pode fazer algo assim:

diretorio = '/caminho/para/seu/diretorio'
arquivos = [f for f in os.listdir(diretorio) if f.endswith('.csv')]

Agora, você pode ler o primeiro arquivo de forma completa e guardar em uma variável:

primeiro_df = pd.read_csv(os.path.join(diretorio, arquivos[0]))

Em seguida, você pode ler os outros arquivos e concatenar apenas a segunda coluna ao dataframe que já contém os dados do primeiro arquivo. Para isso, você pode usar um loop for:

for arquivo in arquivos[1:]:
    df = pd.read_csv(os.path.join(diretorio, arquivo))
    primeiro_df = pd.concat([primeiro_df, df.iloc[:, 1]], axis=1)

Nesse loop, a função iloc[:, 1] é usada para selecionar apenas a segunda coluna do dataframe (lembre-se que a indexação no Python começa em 0, então 1 é a segunda coluna). A função concat é usada para concatenar os dataframes lado a lado (o argumento axis=1 indica que a concatenação deve ser feita nas colunas).

Espero que isso resolva seu problema! Lembre-se que, dependendo dos seus dados, pode ser necessário fazer alguns ajustes no código dependendo de qual ambiente você estiver utilizando.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.