+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用python-docx在docx中添加多索引DataFrame

发布于2021-04-12 03:19     阅读(348)     评论(0)     点赞(9)     收藏(5)


0

1

2

3

4

5

6

我正在尝试使用将交叉制表数据作为表格添加到Word文档中python-docx

我无法添加包括索引在内的完整表格。

交叉表数据 ctab

time     Lunch    Dinner
day                     
Thur  0.250000  0.004098
Fri   0.028689  0.049180
Sat   0.000000  0.356557
Sun   0.000000  0.311475

下面是我尝试的代码

df = sns.load_dataset('tips')

# Create an instance for Document
doc = Document()

# Header
doc.add_paragraph("Bivariate Analysis - Cross Tabulation", style='Intense Quote')

unique_lcc = [('day', 'time'), ('day', 'sex'), ('time', 'smoker'), ('day', 'smoker'), ('sex', 'smoker'), ('sex', 'time')]

for i in unique_lcc:
    ctab = pd.DataFrame((pd.crosstab(df[i[0]], df[i[1]], normalize=True)))

    doc.add_paragraph("Cross Tabulation for " + i[0] +" and " + i[1])

    # Add table
    t = doc.add_table(ctab.shape[0]+1, ctab.shape[1])
    t.style = 'Medium Grid 2 Accent 2'
    # add the header rows.
    for j in range(ctab.shape[-1]):
        t.cell(0,j).text = ctab.columns[j]

    # add the rest of the data frame
    for k in range(ctab.shape[0]):
        for j in range(ctab.shape[-1]):
            t.cell(k+1,j).text = str(ctab.values[k,j])

    d=doc.add_paragraph()
    d.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

    w=d.add_run(f"""The above table shows a cross tabulation between {i[0]} and {i[1]}.""")

# Save
filename = "output/CrossTabulation_Report.docx"
# save the docx
doc.save(filename)

添加了不带索引的表

在此处输入图片说明

如何将带有索引的完整DataFrame作为表添加到文档中?

任何建议或参考将不胜感激。


解决方案


暂无回答

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/934678/e6a8a3fe35de7cc8f5a0/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)