Gibt es eine integrierte Möglichkeit, read_csv
nur die ersten n
Zeilen einer Datei zu lesen, ohne vorher die Länge der Zeilen zu kennen? Ich habe eine große Datei, deren Lesen lange dauert, und möchte gelegentlich nur die ersten 20 Zeilen verwenden, um ein Beispiel davon zu erhalten (und es vorziehen, nicht das ganze Ding zu laden und den Kopf davon zu nehmen).
Wenn ich die Gesamtzahl der Zeilen wüsste, könnte ich so etwas tun footer_lines = total_lines - n
und dies an das skipfooter
Schlüsselwort arg übergeben. Meine aktuelle Lösung besteht darin, die ersten n
Zeilen manuell mit Python und StringIO an Pandas zu übertragen:
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))
Es ist nicht so schlimm, aber gibt es eine präzisere, "pandasische" (?) Möglichkeit, dies mit Schlüsselwörtern oder so etwas zu tun?
Antworten:
Ich denke, Sie können den
nrows
Parameter verwenden. Aus den Dokumenten :das scheint zu funktionieren. Verwenden einer der großen Standardtestdateien (988504479 Byte, 5344499 Zeilen):
quelle
skiprows=None
ist auch ein nützlicher Parameter zu erinnern