如何使用Python计算箱线图各分类的平均值,解决相关运行报错?
报错原因与修正代码
你遇到的类型错误是最后一行代码逻辑完全错误导致的:
- 你写的
sum('Low')是尝试对字符串'Low'执行求和运算,字符串属于文本类型,无法和求和函数默认的初始整数值做加法,直接触发类型报错 - 同时
len('earnings')计算的是'earnings'这个字符串本身的字符长度,完全没有读取你数据集里的收入字段,根本达不到计算分组平均收入的目的。
要按教育水平分组计算平均收入,直接调用pandas的分组聚合方法即可,完整可用代码如下:
import pandas as pd import matplotlib.pyplot as plt # 教育水平分组代码可正常运行,保留即可 mydata['LevelEduc'] = pd.cut(mydata['education'], bins = [0,12,16,float('Inf')],labels=['Low','Medium','High']) # 箱线图绘制代码保留即可 mydata.boxplot(column='education',by='LevelEduc') plt.title("") plt.show() # 按教育水平分组计算平均收入 avg_earnings = mydata.groupby('LevelEduc')['earnings'].mean() # 输出所有分组的平均收入结果 print(avg_earnings) # 如果需要单独提取低教育水平的平均收入,执行下行代码即可 # low_avg = avg_earnings['Low']
内容的提问来源于stack exchange,提问作者Nesrine Tiar
相关产品推荐
相关产品推荐

