1
resposta

Otimização de leitura de arquivos

O que consome menos processamento em Python? Ler uma ver o arquivo e "fatialo" pegando as colunas que você deseja utilizar? Ou ler varias vezes o arquivo e utilizar o 'usecols' para pegar o que deseja?

1 resposta

Oi Vinicius.

A função para ler o arquivo que você se refere pode ser por exemplo a função pd.read_csv(), que por si só já vai realizar uma série de outras operações (por exemplo, verificar se o diretório do arquivo csv que você quer que a função leia é valido). Esse processo pode gastar algum tempo, mesmo que muito baixo, e nem começamos a carregar as coisas na memória do Python ainda.

Por isso é sempre importante que você carregue o DataFrame passando para o usecols somente as colunas que você deseje utilizar em algum momento no seu workflow (como uma lista de colunas mesmo). Como a instrutora disse, vai carregar na memória somente as colunas de seu interesse, ignorando todas as outras no arquivo CSV. A partir disso você pode "fatiar" esse DataFrame para realizar operações específicas.

Por exemplo, prefira:

dados = pd.read_csv('diretorio', usecols = ['coluna_A', 'coluna_B, 'coluna_C'])
dados['coluna_A'] * dados['coluna_B'] * dados['coluna_C']

Ao invés de:

dados1 = pd.read_csv('diretorio', usecols = 'coluna_A')
dados2 = pd.read_csv('diretorio', usecols = 'coluna_B')
dados3 = pd.read_csv('diretorio', usecols = 'coluna_C')
dados1*dados2*dados3