继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【赵渝强老师】利用Python完成数据分布特征的分析

赵渝强老师
关注TA
已关注
手记 30
粉丝 1
获赞 4

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

分布分析能揭示数据的分布特征和分布类型。

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

下面我们通过具体的示例来演示如何对数据 进行定量和定性的分布情况进行分析。下面是需要用到的测试数据。这是数码相机在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()

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

  • 对于定性数据分析

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

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

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

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

绘制出的饼图如下所示。
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP