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 = https://www.yisu.com/ask/{'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