【发布时间】:2019-05-29 15:06:27
【问题描述】:
我正在使用 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', '类型':'现有','状态':'现有'}]]
如何访问上述列表?
我还尝试创建一个熊猫数据框
#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)
我附上了表格的图片。
提前致谢
【问题讨论】:
标签: python-3.x pandas python-docx pandas.excelwriter