Есть ли встроенный способ использовать read_csv
для чтения только первых n
строк файла, не зная заранее длины строк? У меня есть большой файл, чтение которого занимает много времени, и иногда я хочу использовать только первые, скажем, 20 строк, чтобы получить его образец (и предпочитаю не загружать его полностью и не брать на себя его главу).
Если бы я знал общее количество строк, я мог бы сделать что-то вроде footer_lines = total_lines - n
и передать это skipfooter
ключевому слову arg. Мое текущее решение - вручную захватить первые n
строки с помощью python и StringIO для 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))
Это не так уж плохо, но есть ли более лаконичный, «пандийский» (?) Способ сделать это с помощью ключевых слов или чего-то подобного?
Ответы:
Думаю, можно использовать
nrows
параметр. Из документов :который, кажется, работает. Используя один из стандартных больших тестовых файлов (988504479 байт, 5344499 строк):
источник
skiprows=None
тоже полезный параметр, который нужно запомнить