分布分析
分布分析により、分布の特性とデータの種類を明らかにすることができます。
定量的データの場合:周波数分布表を作成し、周波数分布ヒストグラムを描画し、ステムとリーフの図を描画して直感的に分析できます。
定性的分析の場合:円グラフと棒グラフを描画してその分布を直感的に表示できます。
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