crosstab
函数是 pandas 库中的一个函数,用于创建交叉表格
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)
参数说明:
index
: 行索引,可以是一个或多个列名。columns
: 列索引,可以是一个或多个列名。values
: 可选参数,指定计算值的列。如果不提供,将使用频数计算。rownames
: 可选参数,指定行索引的标签。默认为 None
。colnames
: 可选参数,指定列索引的标签。默认为 None
。aggfunc
: 可选参数,指定聚合函数。默认为 numpy.mean
。margins
: 可选参数,布尔值,指示是否添加边际总数。默认为 False
。margins_name
: 可选参数,指定边际总数的标签。默认为 'All'
。dropna
: 可选参数,布尔值,指示是否删除包含 NaN 值的行和列。默认为 True
。normalize
: 可选参数,布尔值或字符串。如果为 True
,则对结果进行归一化。如果为 'index'
,则按行归一化。如果为 'columns'
,则按列归一化。默认为 False
。示例:
import pandas as pd
data = {'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
'B': ['one', 'two', 'three', 'two', 'one', 'three'],
'C': [2.5, 3.5, 4.5, 5.5, 6.5, 7.5],
'D': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 创建一个交叉表格,行索引为 'A',列索引为 'B',计算值为 'C' 列的平均值
ct = pd.crosstab(index=df['A'], columns=df['B'], values=df['C'], aggfunc='mean')
print(ct)
输出:
B one three two
A
bar 6.5 NaN 3.5
baz NaN 4.5 NaN
foo NaN NaN 4.0