Pandas透视表和交叉表

Pandas透视表和交叉表

pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,其中read_csv和read_table这两个使用最多。

以下命令都是在浏览器中输入。

cmd命令窗口输入:jupyter notebook

后打开浏览器输入网址http://localhost:8888/

导入库

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

一、透视表

各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。

  • df.pivot_table()
df = DataFrame({
'sex':['man','man','women','women','man','women','man',
      'women','women'],
'age':[15,23,25,17,35,57,24,31,22],
'smoke':[True,False,False,True,True,False,False,True,False],
'height':[168,179,181,166,173,178,188,190,160]
})
df

这里写图片描述

1、行分组透视表

设置index参数:df.pivot_table(index=”)

df.pivot_table(index='sex')

这里写图片描述

2、列分组透视表

设置columns参数:df.pivot_table(columns=”)

df.pivot_table(columns='sex')

这里写图片描述

df.pivot_table(columns=['sex','smoke'])

这里写图片描述

3、聚合操作设置

aggfunc:设置应用在每个区域的聚合函数,

默认值为aggfunc=np.mean ,求均值

df.pivot_table(columns='sex',aggfunc='sum')

这里写图片描述

二、交叉表

是一种用于计算分组的特殊透视图,对数据进行汇总 。

pd.crosstab(index,colums)

  • index:分组数据,交叉表的行索引
  • columns:交叉表的列索引
df

这里写图片描述

  • 求出各个性别抽烟的人数
pd.crosstab(df.smoke,df.sex)

这里写图片描述

  • 求出各个年龄段抽烟人情况
pd.crosstab(df.age,df.smoke)

这里写图片描述

posted @ 2018-07-25 19:30  轻松学编程  阅读(85)  评论(0编辑  收藏  举报