Pular para o conteúdo

Como Dividir um DataFrame do Pandas em Chunks: Um Guia Simples para Iniciantes

[

Tutorial: Como dividir um dataframe do pandas em pedaços

Introdução

Bem-vindo ao nosso tutorial abrangente sobre como dividir um dataframe do pandas em pedaços! Neste tutorial, iremos explorar uma técnica útil para manipular grandes conjuntos de dados com o pandas, dividindo-os em partes menores, também conhecidas como chunks. Isso pode ser especialmente útil quando se trata de lidar com dados muito grandes ou ao realizar operações paralelas em um conjunto de dados grande.

Resumo

Neste tutorial, você aprenderá a dividir um dataframe do pandas em pedaços menores. Exploraremos várias abordagens para dividir um dataframe em chunks, incluindo baseado em número de linhas, tamanhos fixos de chunks e usando índices para divisão. Em seguida, forneceremos exemplos de código executáveis ​​que demonstram cada abordagem. Vamos começar!

1. Divisão por número de linhas

A primeira abordagem que abordaremos envolve a divisão de um dataframe com base no número de linhas em cada chunk. Para fazer isso, podemos utilizar a função np.array_split do NumPy. Aqui está um exemplo de código que demonstra como dividir um dataframe dessa forma:

import pandas as pd
import numpy as np
def split_dataframe_by_rows(dataframe, num_chunks):
chunks = np.array_split(dataframe, num_chunks)
return chunks
# Exemplo de uso
df = pd.read_csv('data.csv')
chunks = split_dataframe_by_rows(df, 3)
print(chunks)

Neste exemplo, estamos dividindo um dataframe df em 3 chunks (pedaços) usando a função split_dataframe_by_rows. Os chunks resultantes são armazenados na variável chunks e, em seguida, impressos na tela.

2. Divisão por tamanhos fixos de chunks

Outra abordagem para dividir um dataframe é por tamanhos fixos de chunks. Isso pode ser útil quando você deseja garantir que cada chunk tenha aproximadamente o mesmo número de linhas. Você pode usar a função numpy.array_split novamente, mas desta vez especificando o número de chunks desejado.

import pandas as pd
import numpy as np
def split_dataframe_by_size(dataframe, chunk_size):
num_chunks = len(dataframe) // chunk_size + 1
chunks = np.array_split(dataframe, num_chunks)
return chunks
# Exemplo de uso
df = pd.read_csv('data.csv')
chunks = split_dataframe_by_size(df, 1000)
print(chunks)

Neste exemplo, estamos dividindo o dataframe df em chunks de 1000 linhas cada. O número de chunks é calculado com base no tamanho fornecido e, em seguida, os chunks são impressos na tela.

3. Divisão por índices

Uma terceira abordagem para dividir um dataframe é por meio de índices. Essa técnica pode ser útil quando você tem conhecimento prévio sobre as divisões desejadas ou quando deseja dividir com base em critérios específicos. Podemos usar a função iloc do pandas para essa tarefa.

import pandas as pd
def split_dataframe_by_indices(dataframe, indices_list):
chunks = [dataframe.iloc[i] for i in indices_list]
return chunks
# Exemplo de uso
df = pd.read_csv('data.csv')
indices = [range(0, len(df)//2), range(len(df)//2, len(df))]
chunks = split_dataframe_by_indices(df, indices)
print(chunks)

Neste exemplo, estamos dividindo o dataframe df em dois chunks, com base em dois intervalos de índices. Cada chunk é selecionado usando a função iloc junto com a lista de índices.

Conclusão

Neste tutorial abrangente, você aprendeu várias abordagens para dividir um dataframe do pandas em pedaços menores. Exploramos técnicas para divisão por número de linhas, tamanhos fixos de chunks e uso de índices. Esperamos que essas técnicas sejam úteis ao lidar com grandes conjuntos de dados e ao realizar operações paralelas.

FAQs sobre pandas split dataframe into chunks

1. Posso dividir um dataframe em tamanhos de chunk diferentes?

Sim, você pode dividir um dataframe em tamanhos de chunks diferentes usando a técnica de divisão por tamanhos fixos de chunks.

2. Posso aplicar operações em paralelo nos chunks divididos?

Sim, uma vez que você divida um dataframe em vários chunks, você pode aplicar operações em paralelo em cada um desses chunks para melhorar o desempenho.

3. Existe uma função específica do pandas para dividir dataframes em chunks?

Não há uma função específica no pandas para dividir um dataframe em chunks, mas você pode usar funções disponíveis em bibliotecas como NumPy e o próprio pandas para realizar a divisão.

4. Existe uma quantidade máxima recomendada para o tamanho de um chunk?

Não há uma quantidade máxima recomendada para o tamanho de um chunk, mas é recomendável equilibrar o tamanho dos chunks de forma a evitar gargalos de memória.

5. Qual é a melhor abordagem para dividir um dataframe em chunks?

A melhor abordagem para dividir um dataframe em chunks depende do seu caso de uso específico. Recomenda-se experimentar diferentes técnicas e avaliá-las com base nos requisitos do seu projeto.