为了账号安全,请及时绑定邮箱和手机立即绑定

【赵渝强老师】利用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()

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

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

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

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

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

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消