Como abrir grande csv ou arquivos de texto

Pós Visualizações: 3,861

O Problema

Se você trabalhar com o Excel, em algum ponto, você provavelmente já tentou abrir grande csv ou arquivos de texto, mas talvez não conseguiu abri-los. Meu colega uma vez recebeu um grande arquivo csv de 8 GB. Ele queria dar uma olhada no conteúdo, mas não conseguiu abri-lo usando nenhum programa que tentasse, Bloco de notas, Excel, etc. O arquivo era simplesmente grande demais para o programa começar.

então ele me procurou para obter ajuda. Seu pedido foi relativamente simples: abra o arquivo csv grande de 8 GB e, potencialmente, veja os dados nas primeiras duas mil linhas. Esta tarefa aparentemente impossível é fácil quando você escolhe a ferramenta certa – Python.

nossa abordagem

vamos primeiro explorar maneiras de examinar o conteúdo do csv grande. Então vamos dividir o arquivo grande em arquivos pequenos, para que os dados se tornem viáveis (openable?) no Excel.

para fins de demonstração, não usaremos um arquivo csv grande de 8 GB; em vez disso, usaremos um arquivo menor com apenas 2.600 linhas de dados. Se você quiser acompanhar, sinta-se à vontade para baixar o exemplo aqui.

a solução

como sempre, começamos importando as bibliotecas necessárias, neste exercício, só precisamos pandas.

import pandas as pd 
df = pd.read_csv('large_data.csv')
df_small = pd.read_csv('large_data.csv', nrows = 1000)

pd.read_csv() permite-nos ler qualquer .arquivo csv em Python, independentemente do tamanho do arquivo – mais sobre este ponto mais tarde. Um arquivo csv é um arquivo de valores separados por vírgulas, que é basicamente um arquivo de texto. Este método pandas tem um argumento opcional nrows, que especifica o número de linhas que você deseja carregar.

a primeira variável df carregou tudo dentro do arquivo csv. Considerando que a segunda variável df_small carregou apenas as primeiras 1.000 linhas de dados. Podemos verificar isso chamando o atributo .shape.

Tamanho (#de linhas, # de colunas) dos dois dataframes

como mostrado acima, o “large_data.o arquivo csv ” contém 2618 linhas e 11 colunas de dados no total. E também podemos confirmar que na variável df_small, carregamos apenas as primeiras 1.000 linhas de dados, também 11 colunas.

digitar df_small.head() mostra as primeiras 5 linhas de dados dentro do dataframe df_small. Podemos dar uma olhada no arquivo grande dessa maneira!

em seguida, e se quisermos abrir o arquivo de dados usando apenas o Excel? Você sabe, pessoas como o Excel, então temos que nos ater a isso!

embora não possamos usar o magic para permitir que o Excel abra esse arquivo de 8 GB, podemos “dividir e conquistar” dividindo-o em arquivos menores. Por exemplo, 8 arquivos com 1 GB cada, ou 16 arquivos com 500 MB cada. Uma versão moderna do Excel pode lidar com esses tamanhos de arquivo facilmente.

desta vez, carregaremos o dataframe de maneira ligeiramente diferente – com um argumento opcional chunksize. Novamente, para fins de demonstração, estamos usando um arquivo muito menor.

df = pd.read_csv('large_data.csv', chunksize = 900)

sem entrar em muitos detalhes técnicos, o argumento chunksize nos permite carregar dados em pedaços, com cada pedaço tendo um tamanho de 900 linhas de dados em nosso exemplo. O número de pedaços é determinado automaticamente pelo programa. Dado que nosso arquivo csv contém 2.618 linhas, esperamos ver 2618 / 900 = 2,9, o que significa 3 pedaços no total. Os dois primeiros pedaços contêm 900 linhas e o último pedaço contém as 818 linhas restantes.Vamos ver se isso é verdade.

tamanhos menores de dataframe

carregamos e dividimos com sucesso um arquivo em pedaços menores, em seguida, vamos salvá-los em arquivos individuais menores.

i = 1for file in df: file.to_csv(f'file_{i}.csv') i += 1
quebrar o arquivo original e salvar em arquivos pequenos

Colocá-lo Todos Juntos

import pandas as pd df = pd.read_csv('large_data.csv', chunksize = 900)df_small = pd.read_csv('large_data.csv', nrows = 1000)i = 1for file in df: print(file.shape) file.to_csv(f'file_{i}.csv') i += 1

Nós usamos apenas 8 linhas de código para resolver o que parece impossível de alcançar no Excel. Espero que você esteja começando a amar Python ❤️🐍!

Deixe uma resposta

O seu endereço de email não será publicado.