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)