Python Pandas: ¿Cómo leer solo las primeras n filas de archivos CSV en?

93

Tengo un conjunto de datos muy grande y no puedo permitirme leer el conjunto de datos completo. Por lo tanto, estoy pensando en leer solo una parte para entrenar, pero no tengo idea de cómo hacerlo. Cualquier pensamiento será apreciado.

bensw
fuente

Respuestas:

160

Si solo desea leer las primeras 999,999 filas (sin encabezado):

read_csv(..., nrows=999999)

Si solo desea leer las filas 1,000,000 ... 1,999,999

read_csv(..., skiprows=1000000, nrows=999999)

nrows : int, predeterminado Ninguno Número de filas de archivo para leer. Útil para leer fragmentos de archivos grandes *

skiprows : tipo lista o números de fila enteros para omitir (0-indexados) o número de filas para omitir (int) al comienzo del archivo

y para archivos grandes, probablemente también querrá usar chunksize:

chunksize : int, predeterminado Ninguno Devuelve el objeto TextFileReader para iteración

documentación de pandas.io.parsers.read_csv

smci
fuente
Está bien, están un poco escondidos. Al doctor le vendría bien estos ejemplos. chunksizees un poco molesto, tienes que lidiar con trozos de tamaño desigual. También preasigne sus matrices / marcos de datos con el tamaño fijo que sabe que necesitará, no haga concat / anexe dinámicamente siempre que pueda evitarlo.
smci
... y además, no es como lo es la interfaz nstart=,nend=.... Tienes que hacer la aritmética enskiprows = nend - nrows
smci
1
Supongo que acaba de tomar el relevo de SQL LIMIT nstart, skiprows:: /
FooBar
... y no se olvide de los errores de n si también usaheader=n/list
smci