以下数据集均以kaggle的tatinic数据集为例。

1. 透视表(Pivot table)

数据透视表简单来说就是把明细表进行分类汇总的过程,你可以按照不同的组合方式进行数据计算。

  1. # 方法一:使用groupby
  2. train_df.groupby(['Sex', 'Pclass']).mean()
  3. # 方法二:使用pivot_table
  4. pd.pivot_table(train_df, index=['Sex', 'Pclass'], margins=True)

截屏2020-03-25下午4.04.12.png

2. 交叉表(cross table)

交叉表是一种用于计算分组频率的特殊透视表。

  1. # 方法一:用pivot_table
  2. pd.pivot_table(train_df[['Sex', 'Pclass', 'Survived']], index=['Sex', 'Pclass'], columns=['Survived'], aggfunc=len, margins=True)
  3. # 方法二:用crosstab
  4. pd.crosstab([train_df.Sex, train_df.Pclass], train_df.Survived)
  5. #这里需要注意pandas中交叉表的前两个参数为array或series类型,与透视表的有所不同。

截屏2020-03-25下午3.54.04.png
透视表pivot_table()是一种进行分组统计的函数,参数aggfunc决定统计类型;
交叉表crosstab()是一种特殊的pivot_table(),专用于计算分组频率。