Pandas leídos en tabla sin encabezados

239

¿Cómo puedo leer en un archivo .csv (sin encabezados) y cuando solo quiero un subconjunto de las columnas (digamos 4 y 7 de un total de 20 columnas), usando pandas? Parece que no puedo hacerusecols

usuario308827
fuente

Respuestas:

351

Para leer un csv que no tiene un encabezado y solo para ciertas columnas necesita pasar parámetros header=Noney usecols=[3,6]para las columnas 4 y 7:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

Ver los documentos

EdChum
fuente
67

Las respuestas anteriores fueron buenas y correctas, pero en mi opinión, un namesparámetro adicional lo hará perfecto, y debería ser la forma recomendada, especialmente cuando el csv no tiene headers.

Solución

Uso usecolsy namesparámetros

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

Lectura adicional

o use header=Nonepara decir explícitamente a las personas que csvno tiene encabezados (de todos modos, ambas líneas son idénticas )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

Para que pueda recuperar sus datos

# with `names` parameter
df['colA']
df['colB'] 

en vez de

# without `names` parameter
df[0]
df[1]

Explique

Basado en read_csv , cuando namesse pasan explícitamente, entonces headerse comportará como en Nonelugar de 0, por lo que se puede omitir header=Nonecuando namesexista.

ch33hau
fuente
9

Asegúrese de especificar pasar header=Noney agregar usecols=[3,6]para las columnas 4 y 7.

Alex
fuente