初心者データマイニング-データ探索(2):データ機能分析の分布分析

分布分析

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

1.定量的データの分布分析

一般的な手順:

  1. 範囲を見つける:範囲=最大-最小
  2. グループ距離とグループ数を決定します。グループ距離は各間隔の長さ、グループ数=値の範囲/グループ距離です。
  3. ポイントを決定する:ポイントは各間隔の終了点を参照します。このステップでは、各グループの開始点と終了点を決定します。
  4. 周波数分布表を一覧表示します
  5. 周波数分布ヒストグラムを描く

原則に従ってください:

  1. サブグループは相互に排他的でなければなりません
  2. 各グループにはすべてのデータを含める必要があります
  3. 各グループのグループ幅は等しくなければなりません

例:
販売量でグループ化し、頻度を計算する

  1. 範囲を見つける:3960-45 = 3915
  2. グループ化:ビジネスデータによると、グループ距離は500で、グループ数は3915/500 = 7.83、つまり合計8グループです。
  3. 決定ポイント:順番に:[0,500)、[500,1000)、[1000,1500)、[1500,2000)、[2000,2500)、[2500,3000)、[3000,3500)、[3500、 4000)
  4. 周波数分布ヒストグラムをプロットします
  5. 周波数分布ヒストグラムを描く
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

おすすめ

転載: blog.csdn.net/qq_45154565/article/details/109283869