课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
7分钟

透视表和交叉表2

3. 交叉表cross-tabulation:crosstab是一种用于计算分组频率的特殊透视表。我们可以使用pivot_table()函数实现透视表的功能,但是直接使用更方便:

  pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, 
  aggfunc=None, margins=False, dropna=True, normalize=False) 
  • index:一个array-likeSeries或者前两种的列表。它给出了行的计算频数的数据。
  • columns:一个array-likeSeries或者前两种的列表。它给出了列的计算频数的数据。
  • values:一个array-like,该数据用于聚合。如果出现了values,则必须提供aggfunc
  • aggfunc:一个函数对象,是聚合函数。如果出现了aggfunc,则必须提供values
  • rownames:一个序列。如果非空,则必须和结果的row indexlevel数量相等
  • colnames:一个序列。如果非空,则必须和结果的column indexlevel数量相等
  • margins:一个布尔值。如果为True,则添加行/列的总计。
  • dropna:一个布尔值。如果为True,则结果不包含这样的列:该列所有元素都是NaN
  • normalize:一个布尔值、字符串('all'/'index'/'columns')、或者整数0/1。它指定是否进行归一化处理(归一化为频率),否则就是频数。
    • 如果'all'/True,则对所有数据进行归一化
    • 如果为'index':则对每一行归一化
    • 如果为'columns':则对每一列归一化
    • 如果marginsTrue,则对margins也归一化。

values的作用是这样的:首先根据index-columns建立坐标。行坐标来自index,列坐标来自columns。在index-columns-values中,同一个坐标下的values组成Series。这个Seriesaggfunc进行聚合,aggfunc接受一个Series,返回一个标量。此时就不再是对坐标点进行计数了,而是对values进行聚合。