На самом деле, я хочу читать только конкретный столбец из 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 МБ), и это сделает мой процесс очень медленным и когда-нибудь выдаст ошибку памяти.
Заранее спасибо.
Как упоминалось Томасом Фариасом, усеки не принимают значения клеток. Возможный подход - прочитать несколько строк и найти местоположение столбца, а затем прочитать файл во второй раз.
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)
usecols
не принимает значения ячеек Excel. Вы можете использовать буквенные имена столбцов («A», «B» и т. Д.) Илиint
с позицией столбца, но это не будет полезно, если местоположение постоянно меняется. Мой лучший совет - загрузить только одну строку файла Excel, используяnrows=1
, и выяснить положение столбца оттуда.