Esiste un modo integrato read_csv
per leggere solo le prime n
righe di un file senza conoscere in anticipo la lunghezza delle righe? Ho un file di grandi dimensioni che richiede molto tempo per essere letto, e occasionalmente voglio usare solo le prime, diciamo, 20 righe per ottenerne un campione (e preferisco non caricare l'intero file e prenderne la testa).
Se conoscessi il numero totale di righe, potrei fare qualcosa di simile footer_lines = total_lines - n
e passarlo alla skipfooter
parola chiave arg. La mia soluzione attuale è afferrare manualmente le prime n
righe con python e StringIO sui panda:
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))
Non è poi così male, ma esiste un modo più conciso e "pandasico" (?) Per farlo con parole chiave o qualcosa del genere?