对于聚合,我指的是任何能够从数组产生标量值的数据转换过程。
数据聚合
在这里我们除了使用groupby自带那些函数,还可以自己定义我们的聚合函数,例如我们来求一下,最大值和最小值的差。
def peak_to_peak(arr):
return arr.max() - arr.min()
grouped.agg(peak_to_peak)
grouped.describe()
#另外还可以用一些非聚合运算例如describe
面向列的多函数应用
首先我们读取一个实例数据tips.csv
tips = pd.read_csv("tips.csv")
tips['tip_pct'] = tips['tip']/tips['total_bill']
grouped = tips.groupby(['sex','smoker'])
我们有这样几种传入函数的方法:
直接传入函数
使用一个元组一次传入多个函数
grouped_pct.agg([('foo','mean'),('bar',np.std)])
这样改变默认的列名
grouped.agg({'tip':np.max,'size':'sum'})
result = grouped['tip_pct',
'total_bill'].agg(functions)
另外如果要求不同的列对应不同的函数。具体的方法是向agg传入一个字典映射。
grouped.agg({'tip':np.max,'size':'sum'})
以“无索引”的形式返回聚合数据
这里就是加一句 as_index=False