Pandas 数据透视表可用于 Excel 单独的工作表

Posted

技术标签:

【中文标题】Pandas 数据透视表可用于 Excel 单独的工作表【英文标题】:Pandas pivot table to excel seperated sheets 【发布时间】:2018-05-24 13:39:03 【问题描述】:

我的 pandas 数据透视表如下所示;

Region     Dist     A     B      C
X          T        1     2     0,5
X          V        2     2,5   3
Z          T        3     5     8,6
Y          P        8,6   7,2   3
Y          V        4,5   6,5   5
Z          V        7     3,3   4,8
Y          T        2     1,6   2,2
X          P        3     3,3   2,5
Z          P        5,5   6     8   

所以我做了所有的计算,现在我想写到 excel 以进行发布,但我找不到如何通过“区域”单独编写它。在这种情况下,它将是 3 个工作表,分别为 X、Y、Z,但我该如何编码呢?​​

提前致谢!

【问题讨论】:

【参考方案1】:

使用groupbyExcelWriter 分组循环:

with pd.ExcelWriter('file.xlsx') as writer:
    df.groupby('Region').apply(lambda x: x.to_excel(writer, sheet_name=x.name, index=False))

替代方案:

with pd.ExcelWriter('file.xlsx') as writer:
    for i, x in df.groupby('Region'):
        x.to_excel(writer, sheet_name=i, index=False)

如果需要删除输出中的Region 列:

with pd.ExcelWriter('file.xlsx') as writer:
    for i, x in df.groupby('Region'):
        x.drop('Region', axis=1).to_excel(writer, sheet_name=i, index=False)

【讨论】:

非常感谢您的详细回答,不幸的是我得到“类型为“int”的对象没有 len()”错误。你认为为什么会这样? @Tyr sheet_name=str(x.name)sheet_name=str(i) 如何工作?如果没有,你的熊猫版本是什么?如果不是最后的 pandas 0.23.0 是否可以升级?

以上是关于Pandas 数据透视表可用于 Excel 单独的工作表的主要内容,如果未能解决你的问题,请参考以下文章

数据分析—一文看懂数据透视表(Excel&Pandas-pivot_table实现)

在 Pandas 中处理大型数据透视表

一文搞定Pandas的透视表

Python:在 python 中重现嵌套的 Excel 数据透视表

一次用于多列的 Pandas 数据透视表

具有多索引的 Pandas 数据透视表小计