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

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

x = p['fliers'][0].get_xdata()

y = p['fliers'][0].get_ydata()

报错信息:

TypeError:'AxesSubplot'objectisnot subscriptable

解决方案

解决的方法很简单,只需在使用DataFrame创建箱线图的时候加上return_type= ‘dict’即可。

具体可见pandas的官方文档

截图如下

《python数据分析与挖掘实战》笔记-3.1代码问题_第1张图片


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()

你可能感兴趣的:(《python数据分析与挖掘实战》笔记-3.1代码问题)