Python中的列聯表


列聯表是一個表格,它以行顯示一個變數的分佈,以列顯示另一個變數的分佈。它用於研究兩個變數之間的相關性。它是一個多維表,描述了一個數據集,其中每個觀察值屬於幾個變數中的每一個類別。它基本上是兩個或多個分類變數之間計數的彙總。列聯表也稱為交叉表或二維表,在統計學中用於總結幾個分類變數之間的關係。

列聯絡數是一個關聯絡數,它說明兩個變數或資料集是否相互獨立或相互依賴,它也稱為皮爾遜係數。

示例

在下面的示例中,我們採用鳶尾花資料集進行分析。該資料集包含來自三種鳶尾花物種(Iris setosa、Iris virginica和Iris versicolor)的50個樣本。從每個樣本中測量了四個特徵:萼片和花瓣的長度和寬度(以釐米為單位)。我們將根據這些特徵建立列聯模型,最終用於區分不同物種。

讀取資料集

示例

import numpy as np
import pandas as pd
datainput = pd.read_csv("iris.csv")
print (datainput.head(5))

執行上述程式碼將得到以下結果

SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

資料的總體統計

接下來,我們使用describe()收集資料的總體統計資訊。它提供了關於資料分佈的均值和不同四分位數的資訊。

示例

import numpy as np
import pandas as pd
datainput = pd.read_csv("iris.csv")
print(datainput.describe())

執行上述程式碼將得到以下結果

SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm
count 150.000000 150.000000 150.000000 150.000000
mean 5.843333 3.054000 3.758667 1.198667
std 0.828066 0.433594 1.764420 0.763161
min 4.300000 2.000000 1.000000 0.100000
25% 5.100000 2.800000 1.600000 0.300000
50% 5.800000 3.000000 4.350000 1.300000
75% 6.400000 3.300000 5.100000 1.800000
max 7.900000 4.400000 6.900000 2.500000

資料型別

接下來,我們觀察資料框中各列的不同資料型別。

示例

import numpy as np
import pandas as pd
datainput = pd.read_csv("iris.csv")
print(datainput.dtypes)

執行上述程式碼將得到以下結果

SepalLengthCm float64
SepalWidthCm float64
PetalLengthCm float64
PetalWidthCm float64
Species object
dtype: object

建立列聯表

現在,我們為顯示每個物種的花瓣寬度的列建立一個列聯表。為此,我們使用pandas中可用的crosstab函式,並將這兩列的名稱作為輸入。

示例

import numpy as np
import pandas as pd
datainput = pd.read_csv("iris.csv")
width_species = pd.crosstab(datainput['PetalWidthCm'],datainput['Species'],margins = False)
print(width_species)

執行上述程式碼將得到以下結果

Species Iris-setosa Iris-versicolor Iris-virginica
PetalWidthCm
0.1 6 0 0
0.2 28 0 0
0.3 7 0 0
1.0 0 7 0
1.1 0 3 0
1.2 0 5 0
1.8 0 1 11
1.9 0 0 5
2.0 0 0 6
2.1 0 0 6
2.5 0 0 3

多變數列聯表

在這種情況下,我們使用多於兩列來建立列聯表。這裡我們使用每個物種的花瓣長度和花瓣寬度。

import numpy as np
import pandas as pd
datainput = pd.read_csv("iris.csv")
length_width_species = pd.crosstab([datainput.PetalLengthCm, datainput.PetalWidthCm],datainput.Species, margins = False)
print(length_width_species)

執行上述程式碼將得到以下結果

Species Iris-setosa Iris-versicolor Iris-virginica
PetalLengthCm PetalWidthCm
1.0 0.2 1 0 0
1.1 0.1 1 0 0
1.2 0.2 2 0 0
1.3 0.2 4 0 0
0.3 2 0 0
... ... ... ...
6.4 2.0 0 0 1
6.6 2.1 0 0 1
6.7 2.0 0 0 1
2.2 0 0 1
6.9 2.3 0 0 1

更新於:2019年12月30日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.