温馨提示×

Python中crosstab函数的参数设置

小樊
90
2024-08-29 13:31:16
栏目: 编程语言

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

0