Pandas cambaia

Pandas cambaia
Cientistas ou profissionais de dados freqüentemente precisam lidar com conjuntos de dados cujo tamanho é muito maior que a memória de seu sistema local. É difícil descobrir como gerenciar efetivamente a memória, permitindo o uso mais eficaz de dados. Ao lidar com um grande bloco de dados que não se encaixam na memória, você pode dividir os dados em partes menores usando a opção Pandas 'ChunkSize. Ao escolher essa opção, é produzido um objeto iterador que pode ser usado para iterar através dos vários pedaços e realizar filtragem ou análise da mesma maneira que se faria ao carregar todo o conjunto de dados.

Como carregar dados grandes usando o tamanho do pedaço de pandas

Pandas é uma ferramenta de código aberto poderoso e fácil de usar para análise de dados construída sobre o Python que permite a importação e visualização de dados em vários formatos, como .TSV, .CSV, .dB e .arquivos txt. Apenas ".Os arquivos CSV ”serão usados ​​nos exemplos a seguir, embora a técnica seja a mesma para outros formatos de arquivo. A função read_csv () será usada para ler arquivos CSV.

Parâmetros:

filepath_or_bufferstr: Um caminho de sequência válido pode ser usado. Além disso, um URL pode estar na string. Os esquemas de URL aceitáveis ​​são FTP, S3, HTTP, GS e Arquivo. Deve haver um host para URLs de arquivo. Aqui está um exemplo de um arquivo local: Arquivo:/localhost/path/to/tabela.CSV.

ITERATORBOOL: Retorna um objeto TextFileReader para iterar através do arquivo ou recuperar pedaços usando get_chunk ().

tamanho do pedaço: Aceita int; é um parâmetro opcional. Para iteração, ele retorna um objeto TextFileReader.

O argumento de Chunksize da função read_csv () é aquele em que estamos interessados ​​neste artigo. Tecnicamente, Chunksize refere -se a quantas linhas por segundo pandas lêem de um arquivo. Podemos dizer que as primeiras 100 linhas serão carregadas por pandas se o Chunksize for especificado como 100. O objeto retornado é um textfileReader que deve ser iterado para recuperar os dados.

Exemplo # 1: Carregar dados usando a função read_csv () sem chunksize

Para este exemplo, baixaremos um conjunto de dados com um .Extensão de arquivo CSV de qualquer site de código aberto. Você pode baixar o conjunto de dados necessário de vários sites na Internet. Para carregar um arquivo em pandas, primeiro importaremos a biblioteca de pandas. Depois de importar os pandas, usaremos a função read_csv () para carregar o arquivo em nosso ambiente atual. Um arquivo CSV é importado para o formato DataFrame usando a função PANDAS READ_CSV ().

Você notará que, juntamente com os pandas, também importamos uma biblioteca de Pprint porque as estruturas de dados podem ser impressas de maneira compreensível e atraente usando o módulo Python Pprint. Depois de importar os módulos, carregamos nosso .Arquivo CSV colocando o nome do arquivo junto com a extensão do arquivo dentro do PD.Função read_csv (). Para ver nossas colunas dentro do quadro de dados, usamos o PD.atributo de colunas. Esses rótulos da coluna nos permitem acessar os elementos de um quadro de dados e executar a manipulação de dados. Os “pandas. Quadro de dados.Atributo de colunas ”é usado para obter os rótulos individuais da coluna de um quadro de dados. O .O atributo de forma pode ser usado para ver o número de colunas e linhas em nosso quadro de dados.

O valor “90836” é o número total de linhas em nosso quadro de dados, como vimos acima, existem dez colunas em nosso quadro de dados, i i.e., “Classificações”.

Exemplo # 2: Carregue uma grande quantidade de dados usando o ChunkSize na função read_csv ()

Neste exemplo, baixaremos outro conjunto de dados da Internet. A mesma função read_csv () será usada para carregar o arquivo. Mas desta vez, especificaremos um parâmetro "Chunksize" dentro da função. Antes de usar nossa função read_csv (), importaremos as bibliotecas de pandas e pprint.

Vamos visualizar o número total de colunas e linhas em nosso arquivo de dados sem usar um parâmetro ChunkSize.

Lemos o conjunto de dados fornecido no exemplo anterior e apresentamos seus detalhes. As linhas e colunas retornadas pelo atributo "Shape" são 5704247 e 5, respectivamente. Usando o atributo "Info", também mostramos detalhes sobre as linhas e colunas do conjunto de dados.

Como podemos ver, este conjunto de dados possui 5704247 linhas, e o processamento de conjuntos de dados maciços usa muito da RAM do computador. O parâmetro ChunkSize nessas circunstâncias pode ser usado para salvar nossos recursos.

Um objeto TextFileReader é retornado usando o ChunkSize dentro da função read_csv (). Quando o parâmetro ChunkSize é passado para a função read_csv (), um leitor de textfilereader é criado. O arquivo original pode ser lido em peças usando este objeto de arquivo aberto. Internamente, o loop for cria iteradores para esses objetos aplicando o método ITER (). Recebemos um iterador quando empregamos o argumento de Chunksize. Para obter os valores, podemos iterar nesse objeto. O conjunto de dados é lido em pedaços de dados com as linhas especificadas no exemplo anterior, porque o argumento do ChunkSize forneceu um valor. O parâmetro ChunkSize foi especificado para 1000000 para o nosso conjunto de dados, resultando em seis iteradores.

Exemplo # 3: Outro exemplo de parâmetro de chunksize

Como discutido anteriormente, o ChunkSize é o parâmetro usado no Python com frequência para ler arquivos ou conjuntos de dados grandes. O Chunksize divide os dados em tempo real enquanto lê seções menores conhecidas como pedaços, o que aumenta a eficácia geral do programa; Se lemos um .Arquivo CSV sem este parâmetro.

Os pandas são frequentemente usados ​​para armazenar uma grande quantidade de dados; Eles permitem fácil legibilidade e acesso aos dados em um curto período de tempo. O arquivo fornecido (classificações.CSV) possui dados de 1048575 pacientes em 1048575 e 4 colunas. Quando este arquivo é lido por um programa sem parâmetro específico, levará muito tempo para processar tantas informações, tornando o programa menos eficiente. Quando encontramos esse tipo de dados grandes, usamos parâmetros como o ChunkSize. O parâmetro ChunkSize usa iteradores para iterar em um recipiente específico, como a lista, e pode ser acoplado a diferentes loops.

No exemplo anterior, a estrutura de dados de pandas é usada para ler e armazenar as informações, e o ChunkSize também é usado, o que está iterando sobre um objeto para obter os valores. Ele lê nosso arquivo fornecido em subseções de dados (pedaços). Especificamente para o conjunto de dados especificado, quatro iteradores foram especificados para o Chunksize de 250000. O valor retornado depois de ler o objeto não é o quadro de dados, mas um analisador de pandas, eu.e., Pandas.io.analisadores.TextFileReader. Estes são responsáveis ​​pelo transversal sobre o objeto e os valores que resultam no final. O problema a ser observado aqui é que o número da coluna é o mesmo para todo iterador, o que indica que o parâmetro "ChunkSize" usa apenas o número de linhas, não a coluna, durante a criação do iterador.

Conclusão

Neste tutorial, vimos que a memória de sua máquina local não pode acomodar o tamanho dos conjuntos de dados que os cientistas de dados geralmente gerenciam. Portanto, ao ler enormes conjuntos de dados, empregamos o argumento de Chunksize para dividir o conjunto de dados em pedaços de dados. Agora, depois de ler este tutorial, você poderá usar o argumento de Chunksize. Implementamos alguns exemplos para ensiná -lo a dividir seu conjunto de dados com o .Extensão de arquivo CSV em pequenos pedaços.