You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用含百分比的DataFrame绘制分组箱线图?遇‘Series无boxplot属性’报错

问题解决:'Series' object has no attribute 'boxplot'

错误原因

你代码里这一行出了问题:

df = df.astype({'Total': 'float64'}).dtypes

.dtypes会返回一个Series对象,用来显示DataFrame各列的数据类型,你把这个结果赋值给了df,导致原来的DataFrame被覆盖成了Series,而Series没有boxplot方法,所以报错。

修正后的完整代码

import pandas as pd
import matplotlib.pyplot as plt  # 这里要导入pyplot子模块,不是直接导入matplotlib
import numpy as np

df = pd.read_csv("cleaned-A1data.csv")

# 正确处理Total列:先去掉百分号,再转成float类型
df["Total"] = df["Total"].str.rstrip('%').astype('float64')

# 绘制并列箱线图
df.boxplot(column=['Total'], by=['Region'])
plt.show()  # 加上这行才能显示图形

额外说明

  • 原来的import matplotlib as plt是错误的,matplotlib的绘图功能在matplotlib.pyplot模块里,必须导入这个子模块才能正常显示图形。
  • 处理Total列时,直接对该列进行类型转换即可,不需要覆盖整个df,也不需要调用.dtypes。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:03:12