【问题标题】:Pandas pivot table to excel seperated sheetsPandas 数据透视表可用于 Excel 单独的工作表
【发布时间】: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,但我该如何编码呢?​​

提前致谢!

【问题讨论】:

    标签: python excel pandas publish save-as


    【解决方案1】:

    使用groupby 以ExcelWriter 分组循环:

    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 是否可以升级?
    猜你喜欢
    • 2019-03-29
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2017-09-01
    • 2021-01-16
    相关资源
    最近更新 更多