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