Cómo leer ciertas columnas de Excel usando Pandas – Python

Estoy leyendo de una hoja de Excel y quiero leer ciertas columnas: columna 0 porque es el índice de fila y columnas 22:37. Ahora esto es lo que hago:

import pandas as pd import numpy as np file_loc = "path.xlsx" df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = 37) df= pd.concat([df[df.columns[0]], df[df.columns[22:]]], axis=1) 

¡Pero espero que haya una mejor manera de hacerlo! Sé que si hago parse_cols=[0, 22,..,37] puedo hacerlo, pero para grandes conjuntos de datos esto no tiene sentido.

Yo también hice esto:

 s = pd.Series(0) s[1]=22 for i in range(2,14): s[i]=s[i-1]+1 df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = s) 

Pero lee las primeras 15 columnas, que es la longitud de s .

Puedes usar índices de columnas (letras) así:

 import pandas as pd import numpy as np file_loc = "path.xlsx" df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = "A,C:AA") print(df) 

Documentación correspondiente :

parse_cols : int o list, por defecto Ninguno

  • Si Ninguno, entonces analiza todas las columnas,
  • Si int indica la última columna a analizar
  • Si la lista de entradas indica la lista de números de columna a analizar
  • Si la cadena indica una lista separada por comas de nombres de columna y rangos de columna (por ejemplo, “A: E” o “A, C, E: F”)

parse_cols está en desuso, use usecols en usecols lugar

es decir:

 df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols = "A,C:AA")