Python中的列联表
列联表是显示一个变量在行中分布而另一个变量在列中分布的表。它用于研究两个变量之间的相关性。它是一个多路表格,用于描述一个数据集,其中每个观察值属于多个变量中的每个变量的一个类别。同样,它基本上是两个或多个分类变量之间的计数计数。列联表也称为交叉表或双向表,用于统计信息中以汇总几个类别变量之间的关系。
权变系数是一种关联系数,它指示两个变量或数据集是独立的还是相互依赖的,也称为皮尔逊系数
示例
在下面的示例中,我们将虹膜花数据集用于分析。该数据集包含来自三种鸢尾花(鸢尾花,鸢尾鸢尾和杂色鸢尾)中每种的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()
。IT部门提供了有关数据分布方式的平均值和不同四分位数的想法。
示例
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
创建列联表
现在,我们为该列创建一个列联表,显示每种物种的花瓣宽度。为此,我们使用熊猫中可用的交叉表函数,并将这些拖曳列的名称作为输入。
示例
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