在数据分析中,常常需要用到数据透视表和交叉表,下面介绍pandas.DataFrame.pivot_table数据透视表和pandas.DataFrame.crosstab交叉表的用法和区别。
一、数据透视表
数据透视表用来做数据透视,可以通过一个或多个键分组聚合DataFrame中的数据,通过aggfunc参数决定聚合类型,是groupby的高级功能。
pd.pivot_table参数如下:
pd.pivot_table(data, values = None,index = None,columns = None,aggfunc ='mean',fill_value = None,margin = False,dropna = True,margins_name ='All' )
- data:DataFrame对象
- values:要聚合的列或列的列表
- index:数据透视表的index,从原数据的列中筛选
- columns:数据透视表的columns,从原数据的列中筛选
- aggfunc:用于聚合的函数,默认为numpy.mean,支持numpy计算方法
- fill_value: 用于替换缺失值的值
- margin: 添加所有行/列
- dropna: 不包括条目为 NaN的列,默认为True
- margin_name: 当margin为True时,将包含总计的行/列的名称
date = ['2001-1-1','2001-1-2','2001-1-3']*3
rng = pd.to_datetime(date)
df = pd.DataFrame({'date':rng,
'key':list('abcdabcda'),
'value