我正在使用 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%'}], [{'Owner': 'REST Super', '产品':'退休金','类型':'现有','状态':'现有','客户 2':'客户 1'},{'所有者':'TWUSUPER TransPension','产品':'TTR Pension', 'Type': 'New', 'Status': 'New', 'Customer 2': 'Customer 1'}, {'Owner': 'TWUSUPER', 'Product': '退休金','类型':'现有','状态':'现有'}]]
如何访问上述列表?
此外,我尝试创建一个熊猫数据框
#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)
我附上了桌子的图片。
提前致谢