日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

分布分析

發(fā)布時(shí)間:2023/12/13 综合教程 19 生活家
生活随笔 收集整理的這篇文章主要介紹了 分布分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
分布分析用來解釋數(shù)據(jù)的分布特征和分布類型,顯示其分布情況。分布分析主要分為兩種:對定量數(shù)據(jù)的分布分析和對定性數(shù)據(jù)的分布分析。

對定量數(shù)據(jù)的分布分析按照以下步驟執(zhí)行:

1:求極差

2:決定組距與組數(shù)。

3:決定分點(diǎn)。

4:得到頻率分布表。

5:繪制頻率分布直方圖

遵循的原則有:

1:所有分組必須將所有數(shù)據(jù)包含在內(nèi)。

2:各組的組寬最好相等。

3:各組相斥。

對定性數(shù)據(jù)的分布分析:

對定性數(shù)據(jù)的分布分析根據(jù)變量的分類類型來確定分組,然后使用圖形對信息進(jìn)行顯示。
'''
【課程1.2】  分布分析

分布分析 → 研究數(shù)據(jù)的分布特征和分布類型,分定量數(shù)據(jù)、定性數(shù)據(jù)區(qū)分基本統(tǒng)計(jì)量

極差 / 頻率分布情況 / 分組組距及組數(shù)

'''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
# 數(shù)據(jù)讀取

data = pd.read_csv('C:/Users/Hjx/Desktop/深圳羅湖二手房信息.csv',engine = 'python')
plt.scatter(data['經(jīng)度'],data['緯度'],  # 按照經(jīng)緯度顯示
            s = data['房屋單價(jià)']/500,  # 按照單價(jià)顯示大小
            c = data['參考總價(jià)'],  # 按照總價(jià)顯示顏色
            alpha = 0.4, cmap = 'Reds')  
plt.grid()
print(data.dtypes)
print('-------
數(shù)據(jù)長度為%i條' % len(data))
data.head()
# 通過數(shù)據(jù)可見,一共8個(gè)字段
# 定量字段:房屋單價(jià),參考首付,參考總價(jià),*經(jīng)度,*緯度,*房屋編碼
# 定性字段:小區(qū),朝向

  輸出:

房屋編碼      int64
小區(qū)       object
朝向       object
房屋單價(jià)      int64
參考首付    float64
參考總價(jià)    float64
經(jīng)度      float64
緯度      float64
dtype: object
-------
數(shù)據(jù)長度為75條

# 極差:max-min
# 只針對定量字段

def d_range(df,*cols):
    krange = []
    for col in cols:
        crange = df[col].max() - df[col].min()
        krange.append(crange)
    return(krange)
# 創(chuàng)建函數(shù)求極差

key1 = '參考首付'
key2 = '參考總價(jià)'
dr = d_range(data,key1,key2)
print('%s極差為 %f 
%s極差為 %f' % (key1, dr[0], key2, dr[1]))
# 求出數(shù)據(jù)對應(yīng)列的極差

  輸出:

參考首付極差為 52.500000 
參考總價(jià)極差為 175.000000
# 頻率分布情況 - 定量字段
# ① 通過直方圖直接判斷分組組數(shù)

data[key2].hist(bins=10)
# 簡單查看數(shù)據(jù)分布,確定分布組數(shù) → 一般8-16即可
# 這里以10組為參考

  輸出:

# 頻率分布情況 - 定量字段
# ② 求出分組區(qū)間

gcut = pd.cut(data[key2],10,right=False)
gcut_count = gcut.value_counts(sort=False)  # 不排序
data['%s分組區(qū)間' % key2] = gcut.values
print(gcut.head(),'
------')
print(gcut_count)
data.head()
# pd.cut(x, bins, right):按照組數(shù)對x分組,且返回一個(gè)和x同樣長度的分組dataframe,right → 是否右邊包含,默認(rèn)True
# 通過groupby查看不同組的數(shù)據(jù)頻率分布
# 給源數(shù)據(jù)data添加“分組區(qū)間”列

  輸出:

0      [42.5, 60)
1      [25, 42.5)
2      [42.5, 60)
3      [25, 42.5)
4    [165, 182.5)
Name: 參考總價(jià), dtype: category
Categories (10, object): [[25, 42.5) < [42.5, 60) < [60, 77.5) < [77.5, 95) ... [130, 147.5) < [147.5, 165) < [165, 182.5) < [182.5, 200.175)] 
------
[25, 42.5)          14
[42.5, 60)          17
[60, 77.5)           1
[77.5, 95)           2
[95, 112.5)          4
[112.5, 130)         2
[130, 147.5)         3
[147.5, 165)         4
[165, 182.5)         8
[182.5, 200.175)    20
Name: 參考總價(jià), dtype: int64
    房屋編碼    小區(qū)    朝向    房屋單價(jià)    參考首付    參考總價(jià)    經(jīng)度    緯度    參考總價(jià)分組區(qū)間
0    605093949    大望新平村    南北    5434    15.0    50.0    114.180964    22.603698    [42.5, 60)
1    605768856    通寶樓    南北    3472    7.5    25.0    114.179298    22.566910    [25, 42.5)
2    606815561    羅湖區(qū)羅芳村    南北    5842    15.6    52.0    114.158869    22.547223    [42.5, 60)
3    605147285    興華苑    南北    3829    10.8    36.0    114.158040    22.554343    [25, 42.5)
4    606030866    京基東方都會    西南    47222    51.0    170.0    114.149243    22.554370    [165, 182.5)
# 頻率分布情況 - 定量字段
# ③  求出目標(biāo)字段下頻率分布的其他統(tǒng)計(jì)量 → 頻數(shù),頻率,累計(jì)頻率

r_zj = pd.DataFrame(gcut_count)
r_zj.rename(columns ={gcut_count.name:'頻數(shù)'}, inplace = True)  # 修改頻數(shù)字段名
r_zj['頻率'] = r_zj / r_zj['頻數(shù)'].sum()  # 計(jì)算頻率
r_zj['累計(jì)頻率'] = r_zj['頻率'].cumsum()  # 計(jì)算累計(jì)頻率
r_zj['頻率%'] = r_zj['頻率'].apply(lambda x: "%.2f%%" % (x*100))  # 以百分比顯示頻率
r_zj['累計(jì)頻率%'] = r_zj['累計(jì)頻率'].apply(lambda x: "%.2f%%" % (x*100))  # 以百分比顯示累計(jì)頻率
r_zj.style.bar(subset=['頻率','累計(jì)頻率'], color='green',width=100)
# 可視化顯示

  輸出:

# 頻率分布情況 - 定量字段
# ④ 繪制頻率直方圖

r_zj['頻率'].plot(kind = 'bar',
                 width = 0.8,
                 figsize = (12,2),
                 rot = 0,
                 color = 'k',
                 grid = True,
                 alpha = 0.5)
plt.title('參考總價(jià)分布頻率直方圖')
# 繪制直方圖

x = len(r_zj)
y = r_zj['頻率']
m = r_zj['頻數(shù)']
for i,j,k in zip(range(x),y,m):
    plt.text(i-0.1,j+0.01,'%i' % k, color = 'k')
# 添加頻數(shù)標(biāo)簽

  輸出:

# 頻率分布情況 - 定性字段
# ① 通過計(jì)數(shù)統(tǒng)計(jì)判斷不同類別的頻率

cx_g = data['朝向'].value_counts(sort=True)
print(cx_g)
# 統(tǒng)計(jì)頻率

r_cx = pd.DataFrame(cx_g)
r_cx.rename(columns ={cx_g.name:'頻數(shù)'}, inplace = True)  # 修改頻數(shù)字段名
r_cx['頻率'] = r_cx / r_cx['頻數(shù)'].sum()  # 計(jì)算頻率
r_cx['累計(jì)頻率'] = r_cx['頻率'].cumsum()  # 計(jì)算累計(jì)頻率
r_cx['頻率%'] = r_cx['頻率'].apply(lambda x: "%.2f%%" % (x*100))  # 以百分比顯示頻率
r_cx['累計(jì)頻率%'] = r_cx['累計(jì)頻率'].apply(lambda x: "%.2f%%" % (x*100))  # 以百分比顯示累計(jì)頻率
r_cx.style.bar(subset=['頻率','累計(jì)頻率'], color='#d65f5f',width=100)
# 可視化顯示

  輸出:

南北    29
南     20
東      8
東南     5
北      4
西南     4
西北     3
東北     1
東西     1
Name: 朝向, dtype: int64

# 頻率分布情況 - 定量字段
# ② 繪制頻率直方圖、餅圖

plt.figure(num = 1,figsize = (12,2))
r_cx['頻率'].plot(kind = 'bar',
                 width = 0.8,
                 rot = 0,
                 color = 'k',
                 grid = True,
                 alpha = 0.5)
plt.title('參考總價(jià)分布頻率直方圖')
# 繪制直方圖

plt.figure(num = 2)
plt.pie(r_cx['頻數(shù)'],
       labels = r_cx.index,
       autopct='%.2f%%',
       shadow = True)
plt.axis('equal')
# 繪制餅圖

  輸出:

總結(jié):

  用到的方法:

    pd.cut()

    s.value_counts()

  思路:  

    s = df['']

    s_cut = pd.cut(s,bins=20)

    s_count = s_cut.value_counts() --> intervals 為 索引,intervals段內(nèi)的數(shù)字,為value值。

    df1 = pd.DataFrame(s_count) --> 將上面的 Series 轉(zhuǎn)變成 DataFrame。之后的添加 ‘頻率’,‘累計(jì)頻率’,‘頻率%’,‘累計(jì)頻率%’。

總結(jié)

以上是生活随笔為你收集整理的分布分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。