乐趣区

关于python:赵强老师利用Python完成数据分布特征的分析

在对数据的品质进行剖析后,接下来就能够对数据的特色进行剖析和计算,也能够通过绘制图表对数据的特色进行展现。数据的特征分析通过有以下几种形式:散布剖析、比照剖析、统计量分析、周期性剖析、贡献度剖析(帕累托剖析)、相关性剖析、正态性测验。

散布剖析能揭示数据的散布特色和散布类型。

  • 对于定量数据 ,想要理解其散布模式是对称的还是非对称的,发现某些特大或特小的能够值,能够通过绘制频率散布直方图、茎叶图进行直观剖析;
  • 对于定性数据 ,可用饼图和条形图直观的显示散布状况。

上面咱们通过具体的示例来演示如何对数据 进行定量和定性的散布状况进行剖析。上面是须要用到的测试数据。这是数码相机在 1998 年整年的销售订单数据。上面是前 10 条数据:

  • 对于定量数据分析

对数据进行定量分析,展现其散布状况最罕用的办法就是直方图(Histogram)。这种图又称品质分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段示意数据分布的状况。个别用横轴示意数据类型,纵轴示意散布状况。

绘制直方图个别能够依照上面的步骤进行:

  1. 求极差。针对同一指标,极差越大,数据越不稳固
  2. 分组数据,并决定分点
  3. 绘制频率散布直方表
  4. 绘制频率散布直方图

    import pandas as pd
    import matplotlib.pyplot as plt
    
    data = pd.read_csv("/root/data/ 数码相机订单数据.csv")
    
    # 求订单金额的极差。针对同一指标,极差越大,数据越不稳固
    dr = data['订单金额'].max() - data['订单金额'].min()
    print("订单金额极差为:",dr)
    
    # 绘制直方图,显示该年每一个月的订单总额
    # 将数据转换为 DatFrame。这里咱们只须要订单工夫和订单金额
    df = pd.DataFrame({"datetime":data["订单工夫"],"amount":data["订单金额"]})
    
    # 取出订单工夫中的月份
    df['datetime'] = pd.to_datetime(df['datetime'])
    df['month'] = df['datetime'].dt.month.fillna(0).astype("int")
    
    # 按月计算每月的订单总额,并用直方图进行展现
    result = df.groupby('month').sum('amount')
    #输入数据分布直方表
    print(result)
    
    # 绘制数据分布直方图
    result.plot(kind='bar')
    
    plt.xlabel('Month')
    plt.ylabel('Total Sales')
    plt.show()

    绘制出的直方图如下所示。

  5. 对于定性数据分析

对数据的定性分析经常依据变量的分类类型来分组,展现其散布状况最罕用的办法就是饼图或者条形图来形容定性变量的散布。例如,饼图显示一个数据系列中各项的大小与各项总和的比例。饼图中的数据点显示为整个饼图的百分比。

上面以饼图举例说明,只须要将下面直方图代码中最初生成的 DataFrame(result)间接应用饼图绘制出,即可。如下所示。

# 绘制数据的饼图
result.plot.pie(subplots=True,figsize=(11, 11))
plt.show()

#留神:这里的饼图是以 1 月~12 月进行分类的。

绘制出的饼图如下所示。

退出移动版