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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP