import numpy as np
import pandas as pd
from pandas import Series,DataFrame
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
Out[3]:
透视表
各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中
行分组透视表 设置index参数
# 默认得到一个平均值
df.pivot_table(index=[df.sex,df.smoke])
Out[4]:
列分组透视表 设置columns参数
df.pivot_table(columns=df.smoke)
Out[5]:
行列分组的透视表 同时设定index、columns参数
In [9]:
df.pivot_table(index=df.sex,columns=df.smoke)
Out[9]:
aggfunc:设置应用在每个区域的聚合函数,默认值为np.mean
In [10]:
df.pivot_table(index=df.sex,aggfunc=np.sum)
Out[10]:
fill_value:替换结果中的缺失值
交叉表
是一种用于计算分组频率的特殊透视图,对数据进行汇总
pd.crosstab(index,colums)
- index:分组数据,交叉表的行索引
- columns:交叉表的列索引
pd.crosstab(index=df.sex,columns=df.smoke)
Out[6]: