#python #excel #pandas #openpyxl
#питон #превосходить #панды #openpyxl
Вопрос:
Я хотел бы иметь фрейм данных pandas с содержимым файла excel с формулами, если таковые имеются.
Итак, из этого test.xlsx
файла:
gt;gt;gt; from openpyxl import load_workbook gt;gt;gt; sheet = load_workbook('test.xlsx', data_only=False).active gt;gt;gt; for i in range(1, 4, 1): gt;gt;gt; for j in range(1, 3, 1): gt;gt;gt; print(sheet.cell(i, j).value) gt;gt;gt; 4 a 3 b =A1 A2 =B1amp;"_"amp;B2 gt;gt;gt;
Как я могу получить такой фрейм данных панд ?:
In [8]: df Out[8]: 4 a 0 3 b 1 '=A1 A2' '=B1amp;"_"amp;B2'
На данный момент я получаю только ценности::
In [6]: import pandas as pd In [7]: df = pd.read_excel('test.xlsx') In [8]: df Out[8]: 4 a 0 3 b 1 7 a_b
Примечание: Я на Linux, поэтому не могу использовать xlwings
Ответ №1:
openpyxl делает это по умолчанию и sheet.values
может использоваться для создания фрейма данных pandas:
gt;gt;gt; from openpyxl import load_workbook gt;gt;gt; sheet = load_workbook('test.xlsx', data_only=False).active gt;gt;gt; df = pd.DataFrame(sheet.values) gt;gt;gt; gt;gt;gt; df 0 4 a 1 3 b 2 =A2 A3 =B2amp;"_"amp;B3 gt;gt;gt;