Openpyxl поддерживает преобразование всего листа книги Excel 2010 в фрейм данных pandas. Я хочу выбрать подмножество этих ячеек, используя собственные индексы Excel, и преобразовать этот блок ячеек в кадр данных. Документация Openpyxl по работе с пандами не помогает: https://openpyxl.readthedocs.io/en/stable/pandas.html
Я стараюсь избегать 1) циклического прохождения по всем строкам и столбцам данных, поскольку это неэффективно; 2) удаления этих ячеек из фрейма данных после создания вместо этого; 3) модуля Pandas read_excel, так как он, похоже, не поддерживает указание диапазона в собственных индексах Excel.
#This converts an entire workbook to a pandas dataframe
import pandas as pd
import openpyxl as px
Work_Book = px.load_workbook(filename='MyBook.xlsx')
Work_Sheet = Work_Book['Sheet1']
df = pd.DataFrame(Work_Sheet.values)
#This produces a tuple of cells. Calling pd.DataFrame on it returns
#"ValueError: DataFrame constructor not properly called!"
Cell_Range = Work_Sheet['B2:D4']
#This is the only way I currently know to convert Cell_Range to a Pandas
# DataFrame. I'm trying to avoid these nested loops.
row_list = []
for row in Cell_Range:
col_list = []
for col in row:
col_list.append(col.value)
row_list.append(col_list)
df = pd.DataFrame(row_list)
Я пытаюсь найти наиболее эффективный способ преобразования указанного выше объекта Cell_Range в кадр данных pandas. Спасибо!