Existe uma maneira integrada de read_csv
ler apenas as primeiras n
linhas de um arquivo sem saber o comprimento das linhas com antecedência? Tenho um arquivo grande que leva muito tempo para ler e, ocasionalmente, só quero usar as primeiras, digamos, 20 linhas para obter uma amostra dele (e prefiro não carregar todo o conteúdo e tirar o cabeçalho).
Se eu soubesse o número total de linhas, poderia fazer algo como footer_lines = total_lines - n
e passar para a skipfooter
palavra - chave arg. Minha solução atual é pegar manualmente as primeiras n
linhas com python e StringIO para pandas:
import pandas as pd
from StringIO import StringIO
n = 20
with open('big_file.csv', 'r') as f:
head = ''.join(f.readlines(n))
df = pd.read_csv(StringIO(head))
Não é tão ruim assim, mas existe uma maneira mais concisa e 'pandasica' (?) De fazer isso com palavras-chave ou algo assim?
Respostas:
Acho que você pode usar o
nrows
parâmetro. Dos documentos :que parece funcionar. Usando um dos grandes arquivos de teste padrão (988504479 bytes, 5344499 linhas):
fonte
skiprows=None
também é um parâmetro útil para lembrar