《python数据分析与挖掘实战》笔记-3.1代码问题问题解决方案

博主在阅读《Python数据分析与挖掘实战》一书中遇到箱线图异常值处理代码错误,发现需将DataFrame.boxplot设置为return_type='dict'才能解决。文章解释了原因并提供了解决方案,还分享了相关官方文档链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

今天看到《python数据分析与挖掘实战》这本书的第三章的第一份代码,照着书上的代码敲了一遍,发现在异常值处理的部分会报错。

    x = p['fliers'][0].get_xdata()
    y = p['fliers'][0].get_ydata()
[/code]
​
报错信息:
​
```code
    TypeError: 'AxesSubplot' object is not subscriptable
[/code]
​
#  解决方案
​
解决的方法很简单,只需在使用DataFrame创建箱线图的时候加上 **return_type= ‘dict’** 即可。  
具体可见 [ pandas的官方文档 ](http://pandas.pydata.org/pandas-
docs/stable/generated/pandas.DataFrame.boxplot.html)  
截图如下  
![这里写图片描述](https://img-
blog.youkuaiyun.com/20170224221355176?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2l0aHViXzM3NDgwNjE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
​
目前只知道这么改可以成功,具体为什么还没仔细看文档。先挖个坑,等有空把文档翻译一下。
​
最后附上完整代码
​
```code
    # -*- coding:utf-8 -*-
    
    
    import pandas as pd
    import matplotlib.pyplot as plt
    
    catering_sale = '../data_learn/catering_sale.xls'
    data = pd.read_excel(catering_sale, index_col='日期') 
    # print(data.describe())
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    plt.figure()
    # p = data.boxplot()  # 书上的版本
    p = data.boxplot(return_type='dict')
    x = p['fliers'][0].get_xdata()
    y = p['fliers'][0].get_ydata()
    y.sort()
    for i in range(len(x)):
        if i > 0:
            plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i]+0.05-0.8/(y[i]-y[i-1]), y[i]))
        else:
            plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i]+0.08, y[i]))
    
    plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值