亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何使用Python程序完成描述性統(tǒng)計(jì)分析需求

 更新時(shí)間:2023年03月22日 17:12:13   作者:二十六夜.  
這篇文章主要介紹了如何使用Python程序完成描述性統(tǒng)計(jì)分析需求,運(yùn)用制表和分類,圖形以及計(jì)算概括性數(shù)據(jù)來描述數(shù)據(jù)特征的各項(xiàng)活動(dòng),需要的朋友可以參考下

一、前言

1.1 關(guān)于描述性統(tǒng)計(jì)分析

概括地來說,描述性統(tǒng)計(jì)分析就是在收集到的數(shù)據(jù)的基礎(chǔ)上,運(yùn)用制表和分類,圖形以及計(jì)算概括性數(shù)據(jù)來描述數(shù)據(jù)特征的各項(xiàng)活動(dòng)。重要的是,該方法主要內(nèi)容包括頻數(shù)分析、集中趨勢(shì)分析、離散程度分析、分布以及一些基本的統(tǒng)計(jì)圖形。

1.2 本篇目的

本篇內(nèi)容主要是編寫python代碼,以實(shí)現(xiàn)描述性統(tǒng)計(jì)的基本需求,即通過程序獲得在描述性統(tǒng)計(jì)分析時(shí)所需要的數(shù)據(jù)內(nèi)容。具體見下。

1.3 提示

本系列篇屬于實(shí)踐類型的代碼編寫,需要一定的代碼基礎(chǔ),因此有不理解的函數(shù)或方法可以查找他人的教程或是看本人所寫的基礎(chǔ)篇分享。本篇的中心內(nèi)容是2.1與2.2部分,該部分代碼可直接使用,根據(jù)需要可自行修改;而2.3可視化部分了解思路與代碼框架即可,代碼可根據(jù)個(gè)人需要重寫。

二、程序內(nèi)容的編寫

2.1 導(dǎo)入數(shù)據(jù)與前期處理

首先是導(dǎo)入excel表格里的數(shù)據(jù),并進(jìn)行一些基本的設(shè)置。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
pd.set_option('display.max_columns',1000)
pd.set_option("display.width",1000)
pd.set_option('display.max_colwidth',1000)
pd.set_option('display.max_rows',1000)#將行和列的最大展示值設(shè)置到1000,則可展示更多的行而不是以省略號(hào)形式展示。
df=pd.read_excel(r'D:\雜貨\編碼數(shù)據(jù).xlsx',sheet_name='編碼數(shù)據(jù)')

第一、二、三行分別是導(dǎo)入pandas,numpy,matplotlib庫(kù),后面會(huì)用到庫(kù)的內(nèi)容來編寫。

第四到第七行分別是將導(dǎo)入列表的輸出展示內(nèi)容擴(kuò)大到1000的數(shù)量(按照需要,1000這個(gè)數(shù)值還可以設(shè)置的更大),這樣在打印輸出表格的時(shí)候,就不會(huì)出現(xiàn)省略號(hào)省略掉中間內(nèi)容的情況。就像我在第一篇基礎(chǔ)篇中導(dǎo)入excel時(shí)出現(xiàn)的情況:

 設(shè)置好后的輸出情況:

 導(dǎo)入excel表格具體可看我第一篇內(nèi)容:如何在Python中導(dǎo)入EXCEL數(shù)據(jù)

 2.2 描述性統(tǒng)計(jì)分析所要計(jì)算的數(shù)據(jù)

通常,描述性統(tǒng)計(jì)分析需要各變量的觀測(cè)值數(shù)量、均值、方差、標(biāo)準(zhǔn)差、最大最小值等,而在python中可運(yùn)用庫(kù)的方法計(jì)算出各個(gè)數(shù)據(jù)。詳細(xì)代碼見以下:

obs=df.count()#觀測(cè)值
means=df.mean()#均值
var=df.var()#方差
std=df.std()#標(biāo)準(zhǔn)差
min=df.min()#最小值
max=df.max()#最大值
mode=df.mode()#眾數(shù)
siyi=df.quantile(0.25)#四分之一位數(shù)
sisan=df.quantile(0.75)#四分之三位數(shù)
median=df.median()#中位數(shù)
skew=df.skew()#偏度
kurt=df.kurt()#峰度
print("最大值:\n",max,'\n',"最小值:\n",min,'\n','觀測(cè)量:\n',obs,'\n','均值:\n',means,'\n',
      "方差:\n",var,"\n",'標(biāo)準(zhǔn)差:\n',std,'\n',"眾數(shù): ",mode,"\n",'四分之一位數(shù):\n',siyi,'\n',
      '四分之三位數(shù):\n',sisan,'\n','中位數(shù):\n',median,'\n','偏度:\n',skew,'\n','峰度:\n',kurt)

代碼的含義在注釋中已經(jīng)標(biāo)注出來了,不再贅述。(print里的“\n”表示換行輸出)在運(yùn)行以上代碼后,可以得到excel表格中每一列的對(duì)應(yīng)數(shù)據(jù),展示如下:

 輸出的樣式如上圖,由于結(jié)果太多太長(zhǎng),就不一一展示。

2.3 數(shù)據(jù)可視化

2.3.1 概述

描述性統(tǒng)計(jì)分析中,除了列出以上的分析數(shù)據(jù)以外,在多數(shù)情況下仍然需要對(duì)重要的數(shù)據(jù)給出可視化的內(nèi)容,即作圖。數(shù)據(jù)可視化的圖的類型有很多種,比如說折線圖、柱狀圖、條形圖、散點(diǎn)圖、氣泡圖、雷達(dá)圖、箱線圖等。而在一般的數(shù)據(jù)分析類報(bào)告中,最常用的便是折線圖、柱狀圖,因此在本篇中只介紹這兩種可視化方法,其他的在后續(xù)教程分享中會(huì)按需要給出。

2.3.2 思路

可視化之前要有一個(gè)編寫代碼的思路,而作圖的基本思路如下:

建立畫布建立坐標(biāo)系輸入x軸數(shù)據(jù)與y軸數(shù)據(jù)設(shè)定x軸與y軸的刻度并給刻度命名作圖2.3.3 編寫代碼 

fig=plt.figure()#建立畫布
ax1=fig.add_subplot(1,1,1)#建立坐標(biāo)系
 
x=np.arange(7)#x軸數(shù)據(jù)
y=np.array([jishu1,jishu2,jishu3,jishu4,jishu5,jishu6,jishu7])#y軸數(shù)據(jù)
 
plt.xticks(np.arange(7),['0-50元','50-100元','100-150元','150-200元','200-250元','250-300元','300元及以上'])#x軸長(zhǎng)度與命名
plt.yticks(np.arange(0,350,50))#y軸長(zhǎng)度與命名
plt.plot(x,y)#作圖

建立坐標(biāo)系:

建立坐標(biāo)系中,add_subplot()方法括號(hào)里的數(shù)字的含義是:一行一列的第一個(gè)坐標(biāo)系。這么說可能有點(diǎn)抽象,我給出以下例子:

#代碼1:
fig=plt.figure()#建立畫布
ax1=fig.add_subplot(1,1,1)#建立坐標(biāo)系
 
#代碼2:
fig=plt.figure()#建立畫布
ax1=fig.add_subplot(2,2,1)#建立坐標(biāo)系1
ax2=fig.add_subplot(2,2,2)#建立坐標(biāo)系2
ax3=fig.add_subplot(2,2,3)#建立坐標(biāo)系3
ax4=fig.add_subplot(2,2,4)#建立坐標(biāo)系4

代碼1中的(1,1,1)表示一行一列的第一個(gè)坐標(biāo)系;代碼二中的(2,2,1)表示二行二列的第一個(gè)坐標(biāo)系,(2,2,2)表示二行二列的第二個(gè)坐標(biāo)系,(2,2,3)表示二行二列的第三個(gè)坐標(biāo)系,(2,2,4)表示二行二列的第四個(gè)坐標(biāo)系。

而這兩段代碼展示出的坐標(biāo)圖是不一樣的,見下圖:

代碼1:

 代碼2:

 對(duì)比兩個(gè)輸出結(jié)果,可以很容易地知道,代碼1一張圖中只作了一個(gè)坐標(biāo)系,而代碼2的一張圖中作出了四個(gè)坐標(biāo)系。一行一列的第一個(gè)坐標(biāo)系指的就是代碼1唯一的這一個(gè)坐標(biāo)系,而二行二列的第一個(gè)坐標(biāo)系指的是左上角的坐標(biāo)系,二行二列的第四個(gè)坐標(biāo)系指的是右下角的坐標(biāo)系。這樣應(yīng)該就能比較好地理解這個(gè)函數(shù)的意義了。

附上數(shù)據(jù)(坐標(biāo)):

看到x與y軸數(shù)據(jù)的代碼,其中np.arange()函數(shù)是調(diào)用的np庫(kù)的函數(shù)方法。arange()中,方法與range()長(zhǎng)的比較像:arange(start,end,step)。具體含義可以查看后續(xù)基礎(chǔ)篇分享。若了解range()函數(shù)的話,那么arange(7)中的數(shù)字7的含義我也不用多說。x=np.arange(7)則表示橫坐標(biāo)x分別等于0,1,2,3,4,5,6時(shí)對(duì)應(yīng)的情況。對(duì)于y中的array()函數(shù),其主要是用于矩陣或數(shù)組的輸入的,而本篇中的代碼:y=np.array([jishu1,jishu2,jishu3,jishu4,jishu5,jishu6,jishu7]),其中的jishu1這一系列的命名是我定義的變量名,其具體含義我在后文補(bǔ)充,總之在array()中需要輸入的也是數(shù)字。(按照各個(gè)問題的需要,本篇使用了array(),而x與y都適用np.arange()來輸入數(shù)據(jù)都是可以的)。

由此,x與y的數(shù)值組成了一個(gè)坐標(biāo)(x,y),從而能定義一個(gè)點(diǎn)的位置。

設(shè)定刻度(又可稱長(zhǎng)度)與名稱:

最后三行代碼中的plt.xticks()與plt.yticks()方法分別是為了設(shè)定坐標(biāo)刻度(又可稱長(zhǎng)度)與名稱準(zhǔn)備的。其中,括號(hào)內(nèi)的方法為:(刻度,命名),而np.arange(7)表示橫坐標(biāo)軸設(shè)定的長(zhǎng)度為7,列表['0-50元','50-100元','100-150元','150-200元','200-250元','250-300元','300元及以上']即每一個(gè)刻度的命名。

最后一行代碼則是作出符合以上條件的坐標(biāo)圖。

其結(jié)果展示如下:

 顯而易見,x軸的刻度編程了我所設(shè)定的名稱,y軸沒有設(shè)定名稱,則以數(shù)值的形式出現(xiàn)。

為了使坐標(biāo)圖更加直觀,我們也可以給x軸和y軸賦上標(biāo)簽,代碼如下:

plt.xlabel('消費(fèi)金額')#x軸的標(biāo)簽
plt.ylabel('人數(shù)')#y軸的標(biāo)簽

此時(shí)坐標(biāo)圖如下:

 對(duì)比前面的坐標(biāo)圖,此時(shí)的坐標(biāo)圖中x軸和y軸都有了它們的“名字”,這樣圖的關(guān)系就更加明朗了。

2.4 補(bǔ)充內(nèi)容

前面提到,array()函數(shù)中的列表是什么意思。我是以我自己所收集的數(shù)據(jù)為例,寫的本篇內(nèi)容,因此有的地方是看個(gè)人研究需要而寫的代碼,在該部分我加以解釋。

Q7=df.iloc[:,15]
q7=[]
for i in Q7:
      q7.append(i)
print(q7)#讀取所要分析的列的數(shù)據(jù)
jishu1=int(q7.count(1))
jishu2=int(q7.count(2))
jishu3=int(q7.count(3))
jishu4=int(q7.count(4))
jishu5=int(q7.count(5))
jishu6=int(q7.count(6))
jishu7=int(q7.count(7))#計(jì)數(shù)
print('0-50元的有:',jishu1,'\n','50-100元的有:',jishu2,'\n','100-150元的有:',jishu3,'\n',
      '150-200元的有:',jishu4,'\n','200-250元的有:',jishu5,'\n','250-300元的有:',jishu6,'\n','300元及以上的有:',jishu7,'\n')

第一行的df.iloc[:,15]表示的含義是我要讀取第十五列的變量的數(shù)據(jù),該內(nèi)容為“選取excel表格中的某一列”的方法的內(nèi)容,屬于基礎(chǔ)篇的操作,在后續(xù)我會(huì)在基礎(chǔ)篇中分享給部分的內(nèi)容,不在此地贅述。

下面的循環(huán)是我將讀取的函數(shù)放入列表中,并用count()函數(shù)計(jì)算個(gè)數(shù)(該數(shù)據(jù)為人數(shù)計(jì)數(shù),因此count()實(shí)際上是在數(shù)人數(shù)),由此得出以下各個(gè)消費(fèi)段的人數(shù),輸出結(jié)果如下:

 這七個(gè)數(shù)值就是y軸輸入的數(shù)據(jù)。由此應(yīng)該就能理解我在編寫y軸輸入數(shù)據(jù)的代碼時(shí)列表里的幾個(gè)變量名是啥意思了。

三、完整代碼與總結(jié)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
pd.set_option('display.max_columns',1000)
pd.set_option("display.width",1000)
pd.set_option('display.max_colwidth',1000)
pd.set_option('display.max_rows',1000)#將行和列的最大展示值設(shè)置到1000,則可展示更多的行而不是以省略號(hào)形式展示。
df=pd.read_excel(r'D:\雜貨\編碼數(shù)據(jù).xlsx',sheet_name='編碼數(shù)據(jù)')
obs=df.count()#觀測(cè)值
means=df.mean()#均值
var=df.var()#方差
std=df.std()#標(biāo)準(zhǔn)差
min=df.min()#最小值
max=df.max()#最大值
mode=df.mode()#眾數(shù)
siyi=df.quantile(0.25)#四分之一位數(shù)
sisan=df.quantile(0.75)#四分之三位數(shù)
median=df.median()#中位數(shù)
skew=df.skew()#偏度
kurt=df.kurt()#峰度
print("最大值:\n",max,'\n',"最小值:\n",min,'\n','觀測(cè)量:\n',obs,'\n','均值:\n',means,'\n',
      "方差:\n",var,"\n",'標(biāo)準(zhǔn)差:\n',std,'\n',"眾數(shù): ",mode,"\n",'四分之一位數(shù):\n',siyi,'\n',
      '四分之三位數(shù):\n',sisan,'\n','中位數(shù):\n',median,'\n','偏度:\n',skew,'\n','峰度:\n',kurt)
 
#作圖
Q7=df.iloc[:,15]
q7=[]
for i in Q7:
      q7.append(i)
print(q7)#讀取所要分析的列的數(shù)據(jù)
jishu1=int(q7.count(1))
jishu2=int(q7.count(2))
jishu3=int(q7.count(3))
jishu4=int(q7.count(4))
jishu5=int(q7.count(5))
jishu6=int(q7.count(6))
jishu7=int(q7.count(7))#計(jì)數(shù)
print('0-50元的有:',jishu1,'\n','50-100元的有:',jishu2,'\n','100-150元的有:',jishu3,'\n',
      '150-200元的有:',jishu4,'\n','200-250元的有:',jishu5,'\n','250-300元的有:',jishu6,'\n','300元及以上的有:',jishu7,'\n')
 
fig=plt.figure()#建立畫布
ax1=fig.add_subplot(1,1,1)#建立坐標(biāo)系
 
x=np.arange(7)#x軸數(shù)據(jù)
y=np.array([jishu1,jishu2,jishu3,jishu4,jishu5,jishu6,jishu7])#y軸數(shù)據(jù)
 
plt.xticks(np.arange(7),['0-50元','50-100元','100-150元','150-200元','200-250元','250-300元','300元及以上'])#x軸長(zhǎng)度與命名
plt.yticks(np.arange(0,350,50))#y軸長(zhǎng)度與命名
plt.plot(x,y)#作圖
plt.xlabel('消費(fèi)金額')#x軸代表的名字
plt.ylabel('人數(shù)')#y軸代表的名字

到此這篇關(guān)于如何使用Python程序完成描述性統(tǒng)計(jì)分析需求的文章就介紹到這了,更多相關(guān)Python完成描述性統(tǒng)計(jì)分析內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pip matplotlib報(bào)錯(cuò)equired packages can not be built解決

    pip matplotlib報(bào)錯(cuò)equired packages can not be built解決

    這篇文章主要介紹了pip matplotlib報(bào)錯(cuò)equired packages can not be built解決,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 淺析Python自帶性能強(qiáng)悍的標(biāo)準(zhǔn)庫(kù)itertools

    淺析Python自帶性能強(qiáng)悍的標(biāo)準(zhǔn)庫(kù)itertools

    itertools是python內(nèi)置的模塊,使用簡(jiǎn)單且功能強(qiáng)大。這篇文章就主要介紹了通過itertools實(shí)現(xiàn)可迭代對(duì)象的無限迭代、有限迭代和排列組合。感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • Django單元測(cè)試工具test client使用詳解

    Django單元測(cè)試工具test client使用詳解

    這篇文章主要介紹了Django單元測(cè)試工具test client使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 如何利用Python寫猜數(shù)字和字母的游戲

    如何利用Python寫猜數(shù)字和字母的游戲

    這篇文章主要介紹了如何利用Python寫猜數(shù)字和字母的游戲,文章基于Python實(shí)現(xiàn)游戲小項(xiàng)目,感興趣的朋友可以參考一下
    2022-07-07
  • Pytest框架之fixture詳解(二)

    Pytest框架之fixture詳解(二)

    本文詳細(xì)講解了Pytest框架之fixture,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Python能做什么

    Python能做什么

    在本篇文章里小編給大家整理的是關(guān)于Python作用領(lǐng)域等相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。
    2020-06-06
  • 程序員的七夕用30行代碼讓Python化身表白神器

    程序員的七夕用30行代碼讓Python化身表白神器

    轉(zhuǎn)眼又到了咱們中國(guó)傳統(tǒng)的情人節(jié)七夕了,今天筆者就帶大家來領(lǐng)略一下用Python表白的方式,感興趣的朋友跟隨小編一起看看吧
    2019-08-08
  • python基于socket函數(shù)實(shí)現(xiàn)端口掃描

    python基于socket函數(shù)實(shí)現(xiàn)端口掃描

    這篇文章主要為大家詳細(xì)介紹了python基于socket函數(shù)實(shí)現(xiàn)端口掃描,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Python爬蟲urllib和requests的區(qū)別詳解

    Python爬蟲urllib和requests的區(qū)別詳解

    這篇文章主要介紹了Python爬蟲urllib和requests的區(qū)別詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 使用django實(shí)現(xiàn)一個(gè)代碼發(fā)布系統(tǒng)

    使用django實(shí)現(xiàn)一個(gè)代碼發(fā)布系統(tǒng)

    這篇文章主要介紹了使用django實(shí)現(xiàn)一個(gè)代碼發(fā)布系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論