Como combinar arquivos CSV em Python

Como combinar arquivos CSV em Python

Às vezes, o conjunto de dados fornecido não está em um único arquivo CSV. Eles estão todos em diferentes folhas do Excel. Você já sabe que é preferível realizar todas as atividades computacionais ou de pré -processamento em um único conjunto de dados em vez de vários conjuntos de dados. Ele reduz ou economiza o tempo que precisamos gastar em tarefas de pré -processamento. Além disso, como analista de dados ou cientista de dados, você pode frequentemente se sentir sobrecarregado por vários arquivos CSV que devem ser mesclados antes mesmo de iniciar sua análise ou exame dos dados disponíveis. Por outro lado, nem sempre é possível que todos os arquivos sejam obtidos da única ou da mesma fonte de dados e tenham os mesmos nomes de coluna/variáveis ​​e estrutura de dados. Esta postagem ensinará você a combinar dois ou mais arquivos CSV com uma estrutura de coluna semelhante ou diferente.

Por que combinar arquivos CSV?

Um conjunto de dados pode ser uma coleção ou grupo de valores ou números relacionados a um assunto específico. Por exemplo, os resultados dos testes de cada aluno em uma determinada classe são um exemplo de conjunto de dados. Devido ao tamanho de conjuntos de dados grandes, eles são frequentemente armazenados em arquivos CSV separados para diferentes categorias. Por exemplo, se formos obrigados a examinar um paciente para uma doença específica, devemos considerar todos os componentes, incluindo sexo, registro médico, idade, gravidade da doença, etc. Consequentemente, é necessária a combinação de dados de CSV para examinar vários aspectos de influência do preditor. Além disso, é melhor trabalhar e gerenciar um único conjunto de dados, em vez de vários conjuntos de dados enquanto executa as tarefas de computação ou pré -processamento. Salva a memória e outros recursos computacionais

Como combinar arquivos CSV em Python?

Existem várias maneiras e métodos para combinar dois ou mais arquivos CSV no Python. Na seção abaixo, usaremos funções Append (), Concat () e Merge (), etc., Para combinar arquivos CSV no Pandas DataFrame, os dados de dados serão convertidos em um único arquivo CSV. Ensinaremos como combinar vários arquivos CSV com uma estrutura de coluna semelhante ou variável.

Método 1: Combinando CSVs com estruturas ou colunas semelhantes

Nosso diretório de trabalho atual possui dois arquivos CSV, "Test1" e "Test2".

Exemplo # 1: Usando a função Append ()

Ambos os arquivos CSV são da mesma estrutura. A função glob () será usada neste método para listar apenas os arquivos CSV no diretório de trabalho. Então vamos usar “pandas.Quadro de dados.append () ”para ler nossos arquivos CSV (com uma estrutura de tabela comum).

Saída:

Usando a função Anexe, anexamos ou adicionamos cada linha de dados do Test2.CSV sob as linhas de dados do teste1.CSV, como pode ser visto que todas as linhas de dados do arquivo foram combinadas. Para converter esse quadro de dados em CSV, podemos usar a função to_csv ().

Isso criará um arquivo CSV combinado de arquivos CSV de 'Test1' e 'Test2' em nosso diretório de trabalho com o nome especificado, i.e., mesclado.CSV.

Exemplo # 2: Usando a função concat ()

Vamos importar o módulo Pandas primeiro. O método do mapa lerá cada arquivo CSV que passamos usando PD.read_csv (). Esses arquivos mapeados (arquivos CSV) serão combinados ao longo do eixo da linha por padrão usando a função PD.concat (). Se quisermos combinar arquivos CSV horizontalmente, podemos passar o eixo = 1. Especificando o índice ignore = true também cria valores contínuos de índice para o quadro de dados combinados.

O Pd.read_csv () é passado dentro da função concat () para ler os arquivos CSV no quadro de dados de pandas após a concatenação.

Obtivemos um quadro de dados com dados combinados de todos os arquivos CSV no diretório de trabalho. Agora, vamos convertê -lo em um arquivo CSV.

Nosso CSV combinado é criado no diretório atual.

Método 2: Combinando CSVs com diferentes estruturas ou colunas

Discutimos a combinação de arquivos CSV com as mesmas colunas e estrutura no primeiro método. Neste método, combinaremos arquivos CSV com diferentes colunas e estruturas.

Exemplo # 1: Usando a função Merge ()

Os “pandas.A função Merge () ”no módulo Pandas pode combinar dois arquivos CSV. A fusão simplesmente se refere à combinação de dois conjuntos de dados em um único conjunto de dados com base em colunas ou atributos compartilhados.

Podemos mesclar dados de dados de quatro maneiras diferentes de ingressar:

  • Interno
  • Certo
  • Esquerda
  • Exterior

Para executar esses tipos de fusão, usaremos dois arquivos CSV.

Observe que pelo menos um atributo ou coluna deve ser compartilhado pelos dois arquivos CSV. Como observado, a coluna "nome" e alguns de seus atributos são compartilhados pelos dois arquivos CSV.

Mesclar usando junção interna

Especificando o parâmetro como = "interno" na função Merge () combinará os dois quadros de dados de acordo com a coluna especificada e, em seguida, fornecerá um novo DataFrame que contém apenas as linhas com valores idênticos/mesmos em ambos os dados de dados originais.

Como pode ser visto que a função mesclou os dois arquivos CSV e retornou as linhas com base em atributos comuns da coluna 'nome'.

Mesclar usando a junção externa direita

Quando o parâmetro How = "Right" é especificado, os dois quadros de dados serão combinados com base na coluna que especificamos para o parâmetro 'em'. E um novo DataFrame contendo todas as linhas do quadro de dados direito, incluindo quaisquer linhas para as quais o Dataframe esquerdo não contém valores, será retornado, com o valor da coluna do quadro de dados esquerdo definido como NAN.

Mesclar usando a junção externa esquerda

Quando como o parâmetro é especificado como 'esquerda', os dois quadros de dados serão combinados com base na coluna especificada usando o parâmetro 'on', retornando um novo DataFrame que possui todas as linhas do quadro de dados esquerdo, bem como todas as linhas que possuem NAN ou valores nulos no quadro de dados corretos e define o valor da coluna de dados de dados corretos para NAN.

Mesclar usando a junção externa completa

Quando como = "externo" é especificado, os dois quadros de dados serão combinados, dependendo da coluna especificada para o parâmetro 'on', retornando um novo quadro de dados que contém as linhas dos quadros de dados DF1 e DF2 e definir NAN como o valor para qualquer linha para os quais os dados estão ausentes em um dos quadros de dados.

Exemplo # 2: Combinando todos os arquivos CSV no diretório de trabalho

Neste método, usaremos o módulo glob para combinar todos .CSV arquivos em um quadro de dados de pandas. Todas as bibliotecas tiveram que ser importadas primeiro. Em seguida, definiremos um caminho para cada arquivo CSV que queremos combinar. O caminho do arquivo é o primeiro argumento para o sistema operacional.caminho.junção () função no exemplo abaixo, e o segundo argumento é o caminho dos componentes ou .Arquivos CSV a serem unidos. Aqui, a expressão '*.CSV 'encontrará e retornará cada arquivo no diretório de trabalho que termina com o .Extensão do arquivo CSV. O glob.A função Glob (arquivos unidos) aceita uma lista dos nomes dos arquivos mesclados como uma entrada e produz uma lista de todos os arquivos mesclados/combinados.

Este script retornará um DataFrame com dados combinados de todos os arquivos CSV em nosso diretório de trabalho.

Este DataFrame será transformado em um arquivo CSV, e a função to_csv () será usada para esta conversão. Este novo arquivo CSV será os arquivos CSV combinados criados a partir de todos os arquivos CSV armazenados no diretório de trabalho atual.

Conclusão

Neste post, discutimos por que precisamos combinar arquivos CSV. Discutimos como dois ou mais arquivos CSV podem ser combinados no Python. Dividimos este tutorial em duas seções. Na primeira seção, explicamos como usar as funções Append () e Concat () para combinar arquivos CSV da mesma estrutura ou nomes de colunas. Na segunda seção, usamos o método Merge (), OS.caminho.Join () e Método Glob para combinar arquivos CSV de diferentes colunas e estruturas.