回顾
在数据处理进阶pandas入门(十七)中,我们介绍了pandas中对groupby()方法的分组数据处理的两个方法:transform()和apply()。我们需要掌握好这两个方法,对分组数据进行灵活处理。今天我们讲一下pandas中生成数据透视表和交叉表的方法。
生成透视表方法pivot_table()
数据透视表就是将数据的每一列作为输入,输出将数据不断细分成多个维度累计信息的二维数据表。简单来说,数据透视表更像是一种多维的groupb累计操作。pandas中使用pivot_table()方法来生成透视表,基本用法如下。
import numpy as npimport pandas as pddate_range = pd.to_datetime(['2019-5-29', '2019-5-30', '2019-5-31']*3)df = pd.DataFrame({'date':date_range, 'key': list('abcdabcdb'), 'values':np.random.rand(9)*10})print(df)print("---------------")print(pd.pivot_table(df, values='values', index='date', columns='key', aggfunc=np.sum))
pivot_table()方法接收一个DataFrame对象 ,values表示要聚合的列;index表示从原数据中筛选出列作为数据透视表中的index索引;columns表示从原数据中筛选出列作为数据透视表中的columns索引;aggfunc表示用于聚合的函数(支持Numpy计算函数),默认为np.mean,可以用字符串或“np.”两种形式表示。运行结果如下图所示。
上述代码生成的数据透视表中有缺失值, pivot_table()方法对缺失值的处理默认以NaN填充。如果我们不想使用NaN&#