Existe-t-il un moyen intégré à utiliser read_csv
pour lire uniquement les premières n
lignes d'un fichier sans connaître la longueur des lignes à l'avance? J'ai un gros fichier qui prend beaucoup de temps à lire, et je ne veux parfois utiliser que les 20 premières lignes, disons, pour en obtenir un échantillon (et je préfère ne pas charger le tout et en prendre la tête).
Si je connaissais le nombre total de lignes, je pourrais faire quelque chose comme footer_lines = total_lines - n
et passer ceci au skipfooter
mot - clé arg. Ma solution actuelle est de récupérer manuellement les premières n
lignes avec python et StringIO pour les 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))
Ce n'est pas si mal, mais y a-t-il une façon plus concise, «pandasique» (?) De le faire avec des mots-clés ou quelque chose?
Réponses:
Je pense que vous pouvez utiliser le
nrows
paramètre. À partir de la documentation :qui semble fonctionner. En utilisant l'un des grands fichiers de test standard (988504479 octets, 5344499 lignes):
la source
skiprows=None
est également un paramètre utile à retenir