Pandas使用crosstab生成交叉表

2023-02-24 00:00:00 pandas 生成 交叉

在 pandas 中,可以使用 crosstab 方法生成交叉表(cross-tabulation table),也称为列联表(contingency table),它是一种特殊的二维频数表,用于展示两个或多个变量之间的关系。

下面是一个简单的示例:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'gender': ['M', 'F', 'F', 'M', 'M', 'F', 'F'],
                   'age': [20, 30, 25, 35, 40, 25, 30],
                   'income': [3000, 4000, 5000, 6000, 7000, 8000, 9000]})

# 生成交叉表
ct = pd.crosstab(df['gender'], df['age'])

# 显示交叉表
print(ct)

在上面的示例中,我们首先创建一个数据框 df,其中包含三列数据:gender 表示性别,取值为 'M' 或 'F';age 表示年龄,取值为整数;income 表示收入,取值为整数。然后,我们使用 crosstab 方法生成交叉表,其中第一个参数是行索引,第二个参数是列索引。这里,我们将 gender 列作为行索引,age 列作为列索引,生成一个二维的交叉表。最后,我们使用 print 函数显示生成的交叉表。

需要注意的是,交叉表的计算是基于频数的,即某一单元格的值表示相应的行和列中符合要求的数据的个数。因此,在实际使用中,可能需要使用其他方法对数据进行预处理,例如使用 cut 函数将数值型数据离散化成分类变量。

相关文章