Как читать определенные столбцы из 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")