首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在excel中用xlsxwriter保存pandas透视表

如何在excel中用xlsxwriter保存pandas透视表
EN

Stack Overflow用户
提问于 2019-11-22 20:34:28
回答 1查看 3.3K关注 0票数 0

我想保存一个熊猫透视表可能和良好的格式化为一个excel工作簿。

我有一个pandas数据透视表,基于这个公式:

代码语言:javascript
运行
复制
table = pd.pivot_table(d2, values=['Wert'], index=['area', 'Name'], columns=['Monat'],
                          aggfunc={'Wert': np.sum}, margins=True).fillna('')

从我的原始数据帧中:

代码语言:javascript
运行
复制
df
Area Name2 Monat Wert
A    A      1     2
A    A      1     3
A    B      1     2
A    A      2     1

因此,数据透视表如下所示:

代码语言:javascript
运行
复制
          Wert
     Monat 1   2  All
Area  Name 
A     A    5   1  6
      B    2      2
All        7   1  8

然后,我想用下面的代码将其保存在excel工作簿中:

代码语言:javascript
运行
复制
import pandas as pd
import xlsxwriter
workbook = xlsxwriter.Workbook('myexcel.xlsx)
worksheet1 = workbook.add_worksheet('table1')
caption = 'Table1'
worksheet1.set_column(1, 14, 25) #irrelevant, just a random size right now
worksheet1.write('B1', caption)
worksheet1.add_table('B3:K100', {'data': table.values.tolist()}) #also wrong size from B3 to K100
workbook.close()

但这看起来像这样(具有不同的值),因此缺少标题:

如何在excel中调整并保存透视表?

如果我使用pandas命令.to_excel,它看起来是这样的:

这很好,但是列名没有考虑到名称的宽度,背景颜色看起来也不好,而且我还缺少一个捕获。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-22 21:19:50

我找到了结合这个topic:的解决方案

代码语言:javascript
运行
复制
flattened = pd.DataFrame(table.to_records())
flattened.columns = [column.replace("('Wert', ", "Monat: ").replace(")", "") for column in flattened.columns] ##only for renaming the column headers

然后:

代码语言:javascript
运行
复制
workbook = xlsxwriter.Workbook(excelfilename, options={'nan_inf_to_errors': True})
worksheet = workbook.add_worksheet('Table1')
worksheet1.set_column(0, flattned.shape[1], 25)
worksheet.add_table(0, 0, flattened.shape[0], flattened.shape[1]-1,
    {'data': flattened.values.tolist(),
    'columns': [{'header': c} for c in flattened.columns.tolist()],
    'style': 'Table Style Medium 9'})
workbook.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58994422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档