Python中的pandas.crosstab()函数

Python中的pandas.crosstab()函数

该方法用于计算两个(或多个)因子的简单交叉表。默认情况下,计算一个因子的频率表,除非传递一个值数组和一个聚合函数。

语法:

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

参数:

  • index : 数组状,系列,或数组/系列的列表,在行中要分组的值。
  • columns : 数组状,系列,或数组/系列的列表,在列中要分组的值。
  • values : 类似于数组,可有可无,根据因素进行聚合的值数组。需要指定`aggfunc’。
  • rownames : 序列,默认无,如果通过,必须与通过的行数组数量相匹配。
  • colnames : 序列,默认为无,如果通过,必须与通过的列数组的数量相匹配。
  • aggfunc : 函数,可选,如果指定,需要同时指定values
  • margins : bool, default False, 增加行/列的边距(小计)。
  • margins_name : str, default ‘All’, margins为True时包含总数的行/列的名称。
  • dropna : bool,默认为True,不包括那些条目全部为NaN的列。

下面是上述方法的实现和一些例子。

例子1 :

# 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'])
Python

输出 :

Python中的pandas.crosstab()函数

例子2 :

# 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)
Python

输出 :

Python中的pandas.crosstab()函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册