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】:使用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()”错误。你认为为什么会这样? @Tyrsheet_name=str(x.name)
或 sheet_name=str(i)
如何工作?如果没有,你的熊猫版本是什么?如果不是最后的 pandas 0.23.0 是否可以升级?以上是关于Pandas 数据透视表可用于 Excel 单独的工作表的主要内容,如果未能解决你的问题,请参考以下文章
数据分析—一文看懂数据透视表(Excel&Pandas-pivot_table实现)