python - para - ¿Cómo puedo leer parcialmente un enorme archivo CSV?
python pandas excel (2)
Además de la respuesta de EdChums, si encuentra útil el argumento nrows
que simplemente define el número de filas que desea importar. De este modo, no se obtiene un iterador, sino que solo se puede importar una parte del archivo completo de tamaño nrows
. Funciona con skiprows
también.
df = pd.read_csv(''matrix.txt'',sep='','', header = None, skiprows= 1000, nrows=1000)
Tengo un archivo csv muy grande por lo que no puedo leerlos todos en la memoria. Solo quiero leer y procesar unas pocas líneas en él. Así que estoy buscando una función en Pandas que pueda manejar esta tarea, la cual Python básico puede manejar esto bien:
with open(''abc.csv'') as f:
line = f.readline()
# pass until it reaches a particular line number....
Sin embargo, si hago esto en pandas, siempre leo la primera línea:
datainput1 = pd.read_csv(''matrix.txt'',sep='','', header = None, nrows = 1 )
datainput2 = pd.read_csv(''matrix.txt'',sep='','', header = None, nrows = 1 )
Estoy buscando una manera más fácil de manejar esta tarea en pandas. Por ejemplo, si quiero leer filas de 1000 a 2000. ¿Cómo puedo hacer esto rápidamente?
Quiero usar pandas porque quiero leer datos en el marco de datos.
Use chunksize
:
for df in pd.read_csv(''matrix.txt'',sep='','', header = None, chunksize=1):
#do something
Para contestar tu segunda parte haz esto:
df = pd.read_csv(''matrix.txt'',sep='','', header = None, skiprows=1000, chunksize=1000)
Esto omitirá las primeras 1000 filas y luego solo leerá las siguientes 1000 filas, lo que le dará las filas 1000-2000, pero no está claro si requiere que se incluyan los puntos finales, pero puede jugar con los números para obtener lo que desea.