Как читать определенные столбцы из Excel с помощью Pandas - Python

Я читаю из листа Excel, и я хочу прочитать некоторые столбцы: столбец 0, потому что это индекс строки и столбцы 22:37. Теперь вот что я делаю:

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)

Но я надеюсь, что есть лучший способ сделать это! Я знаю, если я сделаю parse_cols=[0, 22,..,37], я могу это сделать, но для больших наборов данных это не имеет смысла.

Я также сделал это:

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)

Но он считывает первые 15 столбцов, длина которых s.

Ответ 1

Вы можете использовать индексы столбцов (буквы) следующим образом:

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

Соответствующая документация:

parse_cols: int или list, по умолчанию None

  • Если нет, то разбирать все столбцы,
  • Если int, то указывает последний столбец для анализа
  • Если список целых чисел, то указывает список номеров столбцов для анализа
  • Если строка, то указывает разделенный запятыми список имен столбцов и диапазонов столбцов (например, "A: E" или "A, C, E: F")

Ответ 2

parse_cols устарела, вместо этого используйте usecols

то есть:

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