分布分析
分布分析能揭示数据的分布特征和分布类型。
对于定量数据:可以做出频率分布表、绘制频率分布直方图、绘制茎叶图进行直观分析;
对于定性分析:可以画出饼图和条形图直观的显示其分布情况。
1、定量数据的分布分析
一般步骤:
- 求极差 :极差 = 最大值 - 最小值
- 决定组距和组数:组距是每个区间的长度,组数 = 值域 / 组距
- 决定分点:分点是指每个区间的端点,这一步是要确定每组的起点和终点
- 列出频率分布表
- 绘制频率分布直方图
遵循原则:
- 分的各组之间必须是相互排斥的
- 各组必须将所有的数据包含在内
- 各组的组宽最好相等
实例:
按照销售量分组并计算频数
- 求极差:3960-45 = 3915
- 分组:根据业务数据取组距为500,则组数为3915/500=7.83,即共8组,
- 决定分点:依次为:[0,500),[500,1000),[1000,1500),[1500,2000),[2000,2500),[2500,3000),[3000,3500),[3500,4000)
- 绘制频率分布直方表
- 绘制频率分布直方图
import pandas as pd #导入所需包
import numpy as np
catering_sale = './data/catering_fish_congee.xls' # 餐饮数据
data = pd.read_excel(catering_sale,names=['date','sale']) # 读取数据,指定“日期”列为索引
bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)',
'[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)']
data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
aggResult = data.groupby(by=['sale分层'])['sale'].agg({
'sale': np.size})
pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100
import matplotlib.pyplot as plt
plt.figure(figsize=(10,6)) # 设置图框大小尺寸
pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10) # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图',fontsize=20)
plt.show()
原数据实例:
原数据取用:
链接:https://pan.baidu.com/s/1gA6KPwfI5Y26S2qm2Uipow
提取码:2677
2、定性数据的分析
定性数据常常根据变量的分类类型来分组,可以采用饼图和条形图来描述其分布。
import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = './data/catering_dish_profit.xls' # 餐饮数据
data = pd.read_excel(catering_dish_profit) # 读取数据,指定“日期”列为索引
# 绘制饼图
x = data['盈利']
labels = data['菜品名']
plt.figure(figsize = (8, 6)) # 设置画布大小
plt.pie(x,labels=labels) # 绘制饼图
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.title('菜品销售量分布(饼图)') # 设置标题
plt.axis('equal')
plt.show()
# 绘制条形图
x = data['菜品名']
y = data['盈利']
plt.figure(figsize = (8, 4)) # 设置画布大小
plt.bar(x,y)
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.xlabel('菜品') # 设置x轴标题
plt.ylabel('销量') # 设置y轴标题
plt.title('菜品销售量分布(条形图)') # 设置标题
plt.show() # 展示图片
饼图的每个扇形部分代表每一类型的所占百分比或频数
条形图(柱状图)的高度代表每一类型的所占百分比或频数,宽度没有意义。
原数据示例:
原数据取用:
链接:https://pan.baidu.com/s/1zHip89y-AkN2smq3ZE-5pw
提取码:2677