美文网首页
《Python数据分析与挖掘实战第三章》(笔记)

《Python数据分析与挖掘实战第三章》(笔记)

作者: 想想17 | 来源:发表于2019-04-17 15:35 被阅读0次

    第三章 

    代码3-1

    p=data.boxplot(reutrn_type='dict')#更正~ 

    pandas官方文档

    The parameter return_type can be used to select the type of element returned by boxplot.  When return_type='axes' is selected, the matplotlib axes on which the boxplot is drawn are returned:

    正确代码如下:

    import pandas as pd

    catering_sale='E:\python程序编辑\Python数据分析与挖掘实战\chapter3\demo\data\catering_sale.xls'

    data=pd.read_excel(catering_sale,index_col=u'日期')#读取数据,以日期列为索引列

    import matplotlib.pyplot as plt

    plt.rcParams['font.sans-serif']=['SimHei']#显示中文正常标签

    plt.rcParams['axes.unicode_minus']=False#用来显示正常负号

    plt.figure()#建立图像

    p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法

    x=p['fliers'][0].get_xdata()#'flies'即为异常值的标签

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

    fliers层表示离散点,使用 P['fliers'][0]获取点坐标,然后get_ydata()获取点纵坐标,get_xdata()是横坐标。

    plt.annotate()的函数解析:

    更详细的解释:plt.annotate()函数解析 - TeFuirnever的博客 - CSDN博客

    plt.annotate(string, xy=(np.pi/2, 1.0), xytext=((np.pi/2)+0.15, 1,5), weight="bold", color="b", arrowprops=dict(arrowstyle="->", connectionstyle="arc3", color="b"))

    string:图形内容的注释文本,xy:被注释图形内容的位置坐标,xytext:注释文本的位置坐标,weight:注释文本的字体粗细风格,color:注释文本的字体颜色,arrowprops:指示被注释内容的箭头的属性字典。

    代码3-2

    from __future__ imports must occur at the beginning of the file问题解决。解决方法(将 from_future_impotrt----前面所有的注释和文字全部删除即可)

    pandas中loc和iloc的用法的区别:

    详细说明见Pandas中loc和iloc函数用法详解 - 破晓时刻的博客 - CSDN博客

    在python中出现了:

    AttributeError: 'Series' object has no attribute 'sort'

    将data.sort(ascending=False),改为data.sort_values(ascending=False)


    2019.4.19

    python中D.T表示矩阵D的转置

    pandas中提供了一些非常方便使用的计算统计特征的函数,主要有累积计算cum(),和滚动计算pd.rolling()

    cum系列函数是作为DataFrame和Series对象的方法而出现的,命令为D.cumsum(),而rolling系列是pandas的是函数,并不是DataFrame或Series的函数,它们的使用格式为pd.rolling_mean(D,k),意思是每k列计算一次均值,滚动计算。

    3.3.2中代码复现出现的错误

    运行pd.rolling_mean(D,1)会出现

    AttributeError: module 'pandas' has no attribute 'rolling_mean'

    将上述代码改为D.rolling(2).sum()

    x=np.linspace(0,2*np.pi,50) #其中2*np.pi就是2pi的意思,只是在利用pi是调用了Python中的numpy库

    plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',startangle=90,shadow=True)

    autopct='%1.2f%%' 中1.2小数点前面的数对结果没有影响,后面的数表示保留几位小数。这个输出的是百分比形式的数字。

    x.plot(label=u'原始数据',legend=True) 中的legend是是否显示标签的意思

    相关文章

      网友评论

          本文标题:《Python数据分析与挖掘实战第三章》(笔记)

          本文链接:https://www.haomeiwen.com/subject/mtqnwqtx.html