pandas, read_excel, usecols с вводом списка, генерирующий пустой фрейм данных

1

На самом деле, я хочу читать только конкретный столбец из excel в dataframe на python, мой код

import pandas as pd
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25",index_col="Developer",usecols="Name of Project")

но я получаю пустой dataframe как вывод, однако, когда я использую

import pandas as pd
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25",index_col="Developer",usecols=2)

Я получаю желаемый результат,

Поскольку я должен сделать это для многих файлов, используя цикл, и расположение столбцов продолжает меняться, поэтому мне нужно идти по его имени, а не по местоположению.

Далее я не могу загрузить полный файл в dataframe и использовать df["column_name"] как размер моего файла excel слишком велик (150 МБ), и это сделает мой процесс очень медленным и когда-нибудь выдаст ошибку памяти.

Заранее спасибо.

  • 1
    Я не думаю, что это будет возможно: usecols не принимает значения ячеек Excel. Вы можете использовать буквенные имена столбцов («A», «B» и т. Д.) Или int с позицией столбца, но это не будет полезно, если местоположение постоянно меняется. Мой лучший совет - загрузить только одну строку файла Excel, используя nrows=1 , и выяснить положение столбца оттуда.
  • 0
    Спасибо за разъяснение моего сомнения ...
Теги:
pandas

1 ответ

0
Лучший ответ

Как упоминалось Томасом Фариасом, усеки не принимают значения клеток. Возможный подход - прочитать несколько строк и найти местоположение столбца, а затем прочитать файл во второй раз.

import pandas as pd
col = pd.read_excel("3_Plants sorted on PLF age cost.xlsx",sheet_name="Age>25", nrows=2).columns
k=col.get_loc('Name of Project')+1
file = pd.read_excel("3_Plants sorted on PLF age cost.xlsx", sheet_name="Age>25", index_col="Developer", usecols=k)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню