当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.crosstab用法及代码示例


用法:

pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)

计算两个(或更多)因子的简单交叉表。默认情况下,除非传递值数组和聚合函数,否则会计算因子的频率表。

参数

indexarray-like、系列或数组/系列列表

行中分组依据的值。

columnsarray-like、系列或数组/系列列表

列中分组依据的值。

valuesarray-like,可选

根据因子聚合的值数组。需要指定aggfunc

rownames序列,默认无

如果通过,则必须匹配通过的行数组数。

colnames序列,默认无

如果通过,则必须匹配通过的列数组的数量。

aggfunc函数,可选

如果指定,还需要指定values

margins布尔值,默认为 False

添加行/列边距(小计)。

margins_namestr,默认“全部”

当边距为 True 时将包含总计的行/列的名称。

dropna布尔值,默认为真

不要包括其条目全部为 NaN 的列。

normalizebool,{‘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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.crosstab。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。