Estoy tratando de importar un archivo .csv usando pandas.read_csv()
, sin embargo, no quiero importar la segunda fila del archivo de datos (la fila con índice = 1 para indexación 0).
No veo cómo no importarlo porque los argumentos usados con el comando parecen ambiguos:
Desde el sitio web de pandas:
skiprows
: tipo lista o enteroNúmeros de fila para omitir (indexados en 0) o número de filas para omitir (int) al comienzo del archivo ".
Si pongo skiprows=1
los argumentos, ¿cómo sabe si debe omitir la primera fila o la fila con el índice 1?
Respuestas:
Puedes probar tú mismo:
>>> import pandas as pd >>> from StringIO import StringIO >>> s = """1, 2 ... 3, 4 ... 5, 6""" >>> pd.read_csv(StringIO(s), skiprows=[1], header=None) 0 1 0 1 2 1 5 6 >>> pd.read_csv(StringIO(s), skiprows=1, header=None) 0 1 0 3 4 1 5 6
fuente
[]
.from io import StringIO
pd.compat.StringIO
.Todavía no tengo reputación para comentar, pero quiero agregar a la respuesta de alko para obtener más referencias.
De los documentos :
fuente
Tuve el mismo problema mientras ejecutaba los skiprows mientras leía el archivo csv. Me estaba poniendo skip_rows = 1 esto no funcionará
Un ejemplo simple da una idea de cómo usar skiprows mientras lee un archivo csv.
import pandas as pd #skiprows=1 will skip first line and try to read from second line df = pd.read_csv('my_csv_file.csv', skiprows=1) ## pandas as pd #print the data frame df
fuente
Todas estas respuestas pasan por alto un punto importante: la n-ésima línea es la n-ésima línea del archivo y no la n-ésima fila del conjunto de datos. Tengo una situación en la que descargo algunos datos anticuados del medidor de flujo del USGS. El encabezado del conjunto de datos se comenta con '#', la primera línea después de eso son las etiquetas, luego viene una línea que describe los tipos de fecha y, por último, los datos en sí. Nunca sé cuántas líneas de comentarios hay, pero sé cuáles son las primeras dos filas. Ejemplo:
Sería bueno si hubiera una manera de omitir automáticamente la enésima fila y la enésima línea.
Como nota, pude solucionar mi problema con:
import pandas as pd ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True) ds.drop(0, inplace=True)
fuente
skip[1]
saltará la segunda línea, no la primera.fuente
También asegúrese de que su archivo sea en realidad un archivo CSV. Por ejemplo, si tenía un archivo .xls y simplemente cambió la extensión del archivo a .csv, el archivo no se importará y dará el error anterior. Para verificar si este es su problema, abra el archivo en Excel y probablemente dirá:
"El formato de archivo y la extensión de 'Filename.csv' no coinciden. El archivo podría estar dañado o no ser seguro. A menos que confíe en su fuente, no lo abra. ¿Quiere abrirlo de todos modos?"
Para arreglar el archivo: abra el archivo en Excel, haga clic en "Guardar como", elija el formato de archivo para guardar como (use .cvs), luego reemplace el archivo existente.
Este era mi problema y solucionó el error por mí.
fuente