python中使用agg方法聚合数据

使用agg方法聚合数据
agg,aggregate方法都支持对每个分组应用某函数,包括Python内置函数或自定义函数。同时这两个方法能够也能够直接对DataFrame进行函数应用操作。
在正常使用过程中,agg函数和aggregate函数对DataFrame对象操作时功能几乎完全相同,因此只需要掌握其中一个函数即可。它们的参数说明如下表。
**DataFrame.agg(func, axis=0, *args, **kwargs)
DataFrame.aggregate(func, axis=0, *args, kwargs)
python中使用agg方法聚合数据_第1张图片
[让我看看]数据长什么样子
python中使用agg方法聚合数据_第2张图片

import pandas as pd
import numpy as np
from datetime import datetime
# 读取数据保存为data
data = pd.read_csv("./ex1.csv",encoding = 'gbk')

读取后查看一下下
python中使用agg方法聚合数据_第3张图片
显示一下下所有信息
python中使用agg方法聚合数据_第4张图片

1.使用agg求出当前数据对应的统计量``

print('a和b的和与均值为:')
data[['a','b']].agg([np.sum,np.mean])

python中使用agg方法聚合数据_第5张图片
对于某个字段希望只做求均值操作,而对另一个字段则希望只做求和操作,可以使用字典的方式,将两个字段名分别作为key,然后将NumPy库的求和与求均值的函数分别作为value,如

2.使用agg分别求字段的不同统计量

print('a和与b的均值为:')
data.agg({
     'a':np.sum,'b':np.mean})

python中使用agg方法聚合数据_第6张图片

3.使用agg方法求不同字段的不同数目统计量

 在某些时候希望求出某个字段的多个统计量,对某些字段则只需求一个统计量,这时只需要将字典对应的key的value转换成列表,将列表元素转变为多个目标的统计量即可
print('a的总和与b的总和与均值')
data.agg({
     'a':np.sum,'b':[np.sum,np.mean]})

python中使用agg方法聚合数据_第7张图片

4.在agg方法中使用自定义函数

# 自定义函数求两倍的和
def DoubleSum(data):
    s = data.sum()*2
    return s
print('输出a的两倍总和为:','\n',data.agg({
     'a':DoubleSum},axis = 0))

python中使用agg方法聚合数据_第8张图片
在agg方法可传入读者自定义的函数。
使用自定义函数需要注意的是NumPy库中的函数np.mean,np.median,np.prod,np.sum,np.std,np.var能够在agg中直接使用,但是在自定义函数中使用NumPy库中的这些函数,如果计算的时候是单个序列则会无法得出想要的结果,如果是多列数据同时计算则不会出现这种问题,下面试验一下下

5.agg方法中使用的自定义函数含NumPy中的函数

# 自定义函数两倍的和
def DoubleSum1(data):
    s = np.sum(data)*2
    return s
print('输出a的两倍总和为:','\n',data.agg({
     'a':DoubleSum1},axis = 0))

python中使用agg方法聚合数据_第9张图片
print(‘a与b的和的两倍为: \n’,data[[‘a’,‘b’]].agg(DoubleSum1))

python中使用agg方法聚合数据_第10张图片

你可能感兴趣的:(【python数据分析】)