Я использую python-docx для извлечения двух таблиц из документа.
Я перебрал таблицы и создал список списков. Каждый отдельный список представляет таблицу, и в ней у меня есть словари для каждой строки. Каждый словарь содержит пару ключ / значение. Ключ - это заголовок столбца таблицы, а значение - содержимое ячейки для данных этой строки для этого столбца.
Я сталкиваюсь с трудностями при создании фрейма данных для каждой таблицы и написании каждой таблицы на отдельном листе Excel.
from docx.api import Document
import pandas as pd
import csv
import json
import unicodedata
document = Document('Sampletable1.docx')
tables = document.tables
print (len(tables))
big_data = []
for table in document.tables:
data = []
Keys = None
for i, row in enumerate(table.rows):
text = (cell.text for cell in row.cells)
if i == 0:
keys = tuple(text)
continue
dic = dict(zip(keys, text))
data.append(dic)
big_data.append(data)
print(big_data)
Вывод вышеуказанного кода:
2
[[{'Актив': 'Инвестиции в рост', 'Целевая совокупность инвестиций': '66 .50% ',' Фактическая совокупность инвестиций ': '66 .30%', 'Разница': '-0.20%'}, {' Актив ':' Оборонительные инвестиции ',' Целевое сочетание инвестиций ': '33 .50%', 'Фактическое сочетание инвестиций': '33 .70% ',' Разница ':' 0.20% '}], [{' Владелец ':' REST Super ',' Product ':' Superannuation ',' Type ':' Existing ',' Status ':' Existing ',' Customer 2 ':' Customer 1 '}, {' Owner ':' TWUSUPER TransPension ',' Product ' : «TTR Pension», «Type»: «New», «Status»: «New», «Customer 2»: «Customer 1»}, {«Owner»: «TWUSUPER», «Product»: «Superannuation», 'Type': 'Existing', 'Status': 'Existing'}]]
Как получить доступ к вышеперечисленным спискам ??
Далее я попытался создать фрейм данных для панд
#write the data into a data frame
for thing in big_data:
#print(thing)
df = pd.DataFrame(thing)
print(df)
writer = pd.ExcelWriter('dftable3.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
Я получил первую таблицу в Excel, но не смог работать со второй таблицей.
Я ожидаю, что обе таблицы будут находиться в одной и той же книге Excel (dftable3.xlsx), но в разных таблицах (Sheet1, Sheet2)
Я приложил изображения таблиц.
Заранее спасибо