You need to enable JavaScript to run this app. 如何使用Python基于pandas DataFrame多列数据生成饼图
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python基于pandas DataFrame多列数据生成饼图

基于pandas DataFrame生成三类数值饼图的实现方案

这里提供两种常用的可落地实现方式,适配单行汇总/多行明细两种数据结构:

方案1:使用pandas内置绘图接口(最简实现)

该方法代码量最少,适合快速出图:

  • 先导入依赖库:
import pandas as pd
import matplotlib.pyplot as plt
  • 提取三类列的数值汇总(单/多行数据都兼容):
# 自动对approve、disapprove、none三列做求和计算
pie_data = df[["approve", "disapprove", "none"]].sum()
  • 直接生成饼图:
# autopct参数设置扇区百分比显示格式,ylabel设为空可以隐藏默认的列名标注
pie_data.plot.pie(autopct="%1.1f%%", figsize=(6, 6), ylabel="")
plt.show()

方案2:使用matplotlib自定义绘制(灵活度更高)

该方法支持自定义更多样式参数,适合需要调整展示效果的场景:

  • 导入依赖库和方案1一致,先提取标签和数值:
labels = ["approve", "disapprove", "none"]
# 提取三类列的合计值
sizes = df[["approve", "disapprove", "none"]].sum().values
  • 自定义绘制饼图:
plt.figure(figsize=(6, 6))
# startangle参数设置饼图的起始角度
plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=90)
# 保证饼图输出为正圆形
plt.axis("equal")
plt.show()

补充说明:如果你的DataFrame已经是预计算好的单行汇总数据,sum()方法也不会影响最终结果,无需额外修改代码。


内容的提问来源于stack exchange,提问作者ESarousi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:15:09