это мой первый вопрос, так что извините заранее, если я сделаю некоторые объяснения ошибок.
Я кодирую в python 2.7. Я написал файл.xlsx(Excel) (возможно, это был.xls, на данный момент мне не нужен макрос + VBA). Файл Excel выглядит следующим образом:
Значения связаны с именем столбца и именем строки. Например, у меня есть столбец с именем "Кривая 1" и строка "Число экстремумов". Поэтому в этой ячейке я написал "1", если кривая 1 имеет 1 экстремум. Я хочу принять это значение, чтобы манипулировать им в скрипте python. Я знаю, что могу использовать модуль xlrd с открытой книгой и поместить значения строки 1 ("Число экстремумов") в список, а затем взять только первый (соответствующий столбцу "Кривая 1" и, следовательно, значение " 1 "Я хочу", но это не то, что я хотел бы иметь.
Вместо этого я хотел бы получить доступ к значению ячейки "1", просто передав скрипту python строки "Curve 1" и "Number of extremum", и python будет обращаться к ячейке на собрании двух и принять ее значение: "1". Является ли это возможным?
Я хотел бы сделать это, потому что файл Excel будет меняться со временем, и ячейки могут быть перемещены. Поэтому, если я попытаюсь получить значение ячейки с помощью "номера позиции" (например, строки 1, столбец 1), у меня возникнет проблема, если в этой позиции будет добавлен столбец или строка. Я бы не захотел снова редактировать скрипт python, если в файле xlsx есть какое-то редактирование.
Большое спасибо.
Pandas - популярная сторонняя библиотека для чтения/записи наборов данных. Вы можете использовать pd.DataFrame.at
для эффективного скалярного доступа с помощью ярлыков строк и столбцов:
import pandas as pd
# read file
df = pd.read_excel('file.xlsx')
# extract value
val = df.at['N of extremum', 'Curve 1']
Это очень просто, используя Pandas. Чтобы получить ячейку, которую вы хотите, вы можете просто использовать loc
который позволяет вам указать строку и столбец так, как вы хотите.
import pandas
df = pandas.read_excel('test.xlsx')
df.loc['N of extremum', 'Curve 1']