用法:
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)
计算两个(或更多)因子的简单交叉表。默认情况下,除非传递值数组和聚合函数,否则会计算因子的频率表。
- index:array-like、系列或数组/系列列表
行中分组依据的值。
- columns:array-like、系列或数组/系列列表
列中分组依据的值。
- values:array-like,可选
根据因子聚合的值数组。需要指定
aggfunc
。- rownames:序列,默认无
如果通过,则必须匹配通过的行数组数。
- colnames:序列,默认无
如果通过,则必须匹配通过的列数组的数量。
- aggfunc:函数,可选
如果指定,还需要指定
values
。- margins:布尔值,默认为 False
添加行/列边距(小计)。
- margins_name:str,默认“全部”
当边距为 True 时将包含总计的行/列的名称。
- dropna:布尔值,默认为真
不要包括其条目全部为 NaN 的列。
- normalize:bool,{‘all’, ‘index’, ‘columns’} 或 {0,1},默认为 False
通过将所有值除以值的总和进行归一化。
如果通过 ‘all’ 或
True
,将对所有值进行标准化。如果通过 ‘index’ 将在每一行上标准化。
如果通过 ‘columns’ 将在每一列上标准化。
如果边距是
True
,也会标准化边距值。
- DataFrame
数据的交叉表。
参数:
返回:
注意:
除非指定cross-tabulation 的行名或列名,否则传递的任何系列都将使用其名称属性。
任何传递的包含分类数据的输入都将在cross-tabulation 中包含其所有类别,即使实际数据不包含特定类别的任何实例。
如果没有重叠的索引,则将返回一个空的 DataFrame。
有关更多示例,请参阅用户指南。
例子:
>>> a = np.array(["foo", "foo", "foo", "foo", "bar", "bar", ... "bar", "bar", "foo", "foo", "foo"], dtype=object) >>> b = np.array(["one", "one", "one", "two", "one", "one", ... "one", "two", "two", "two", "one"], dtype=object) >>> c = np.array(["dull", "dull", "shiny", "dull", "dull", "shiny", ... "shiny", "dull", "shiny", "shiny", "shiny"], ... dtype=object) >>> pd.crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c']) b one two c dull shiny dull shiny a bar 1 2 1 0 foo 2 2 1 2
这里 ‘c’ and ‘f’ 没有在数据中表示,也不会显示在输出中,因为 dropna 默认为 True。设置 dropna=False 以保留没有数据的类别。
>>> foo = pd.Categorical(['a', 'b'], categories=['a', 'b', 'c']) >>> bar = pd.Categorical(['d', 'e'], categories=['d', 'e', 'f']) >>> pd.crosstab(foo, bar) col_0 d e row_0 a 1 0 b 0 1 >>> pd.crosstab(foo, bar, dropna=False) col_0 d e f row_0 a 1 0 0 b 0 1 0 c 0 0 0
相关用法
- Python pandas.crosstab()用法及代码示例
- Python pandas.core.resample.Resampler.nearest用法及代码示例
- Python pandas.core.groupby.GroupBy.nth用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.unique用法及代码示例
- Python pandas.core.window.rolling.Window.mean用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.hist用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.nlargest用法及代码示例
- Python pandas.core.window.expanding.Expanding.kurt用法及代码示例
- Python pandas.core.window.expanding.Expanding.sum用法及代码示例
- Python pandas.core.window.expanding.Expanding.median用法及代码示例
- Python pandas.core.window.expanding.Expanding.std用法及代码示例
- Python pandas.core.window.rolling.Window.std用法及代码示例
- Python pandas.core.window.rolling.Rolling.aggregate用法及代码示例
- Python pandas.core.window.expanding.Expanding.sem用法及代码示例
- Python pandas.core.window.expanding.Expanding.corr用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.resample用法及代码示例
- Python pandas.core.window.expanding.Expanding.aggregate用法及代码示例
- Python pandas.core.resample.Resampler.transform用法及代码示例
- Python pandas.core.window.expanding.Expanding.count用法及代码示例
- Python pandas.core.window.rolling.Rolling.sum用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.crosstab。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。