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


Python pandas.crosstab()用法及代码示例


此方法用于计算两个(或更多个)因子的简单cross-tabulation。默认情况下,除非传递值数组和聚合函数,否则将计算因子的频率表。

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

Arguments:

  • index:array-like,系列或数组/系列的列表,要在行中进行分组的值。
  • columns:array-like,系列,或数组/系列的列表,要在列中分组的值。
  • values:array-like,可选的值数组,根据因子进行汇总。要求指定`aggfunc`。
  • rownames:序列,默认为无,如果传递,则必须与传递的行数组数匹配。
  • colnames :sequence,默认为None,如果传递,则必须与传递的列数组数匹配。
  • aggfunc:函数,可选,如果指定,则还需要指定`values`。
  • margins:bool,默认为False,添加行/列边距(小计)。
  • margins_name:str,默认为“全部”,边距为True时将包含总计的行/列的名称。
  • dropna:bool,默认为True,不包括所有条目均为NaN的列。

下面是上述方法的实现和一些示例:

范例1:



Python3

# importing packages 
import pandas 
import numpy 
  
# creating some data 
a = numpy.array(["foo", "foo", "foo", "foo", 
                 "bar", "bar", "bar", "bar", 
                 "foo", "foo", "foo"], 
                dtype=object) 
  
b = numpy.array(["one", "one", "one", "two", 
                 "one", "one", "one", "two", 
                 "two", "two", "one"], 
                dtype=object) 
  
c = numpy.array(["dull", "dull", "shiny", 
                 "dull", "dull", "shiny", 
                 "shiny", "dull", "shiny", 
                 "shiny", "shiny"], 
                dtype=object) 
  
# form the cross tab 
pandas.crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c'])

输出:

范例2:

Python3

# importing package 
import pandas 
  
# create some data 
foo = pandas.Categorical(['a', 'b'],  
                         categories=['a', 'b', 'c']) 
  
bar = pandas.Categorical(['d', 'e'],  
                         categories=['d', 'e', 'f']) 
  
# form crosstab with dropna=True (default) 
pandas.crosstab(foo, bar) 
  
# form crosstab with dropna=False 
pandas.crosstab(foo, bar, dropna=False)

输出:




相关用法


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