Comment lire partiellement un énorme fichier CSV?
J'ai un très gros fichier csv, de sorte que je ne peux pas les lire tous en mémoire. Je veux seulement de lire et de traiter en quelques lignes. Donc, je suis à la recherche d'une fonction dans les Pandas qui pourrait gérer cette tâche, dont la base de python, il est possible de gérer ce bien:
with open('abc.csv') as f:
line = f.readline()
# pass until it reaches a particular line number....
Cependant, si je fais cela dans les pandas, j'ai toujours lu la première ligne:
datainput1 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
datainput2 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
Je suis à la recherche pour certains de moyen plus facile de gérer cette tâche dans les pandas. Par exemple, si je veux lire les lignes de 1000 à 2000. Comment puis-je le faire rapidement?
La raison pour laquelle je veux utiliser les pandas, parce que je veux lire des données dans le bloc de données
source d'informationauteur lserlohn
Vous devez vous connecter pour publier un commentaire.
Utilisation
chunksize
:Pour répondre à votre deuxième partie de ce faire:
Ce fera passer les 1000 premières lignes et alors seulement lire les 1000 prochaines lignes vous donnant les lignes 1000-2000, difficile de savoir si vous avez besoin de la fin des points pour être inclus ou non, mais vous pouvez jouer les chiffres à obtenir ce que vous voulez.
En plus de EdChums réponse si trouvé le
nrows
argument utile qui définit simplement le nombre de lignes que vous souhaitez importer. Ainsi vous ne soyez pas un itérateur, mais plutôt pouvez simplement importer une partie de l'ensemble du fichier de taillenrows
. Il fonctionne avecskiprows
trop.