【Python数据分析-10】数据分组和聚合-聚合运算

聚合运算

聚合运算方法

参数 使用说明
count 计数
sum 求和
mean 求平均值
median 求算术中位数
std、var 无偏标椎差和方差
min、max 求最小值和最大值
prod 求积
first、last 第一个和最后一个

首先导入所需要的模块和读取数据

import pandas as pd
from pandas import DataFrame,Series
import seaborn as sns


tips=sns.load_dataset('tips')
print(tips.head())

如:

max_1=tips.groupby('sex')['tip'].max()
print(max_1 )

在这里插入图片描述
对于更加复杂的聚合运算,可以自定义聚合函数,通过aggregate或agg参数传入即可。

def f(x):
    return x.max()-x.min()
obj_1=tips.groupby('sex')['tip'].agg(f)

print(obj_1)

在这里插入图片描述

多函数应用

1.一列多函数

print(tips.groupby(['sex','smoker'])['tip'].agg(['mean','std']))

在这里插入图片描述
如果不想使用默认的运算函数列名,可以以元组的形式传入,前面为名称,后面为聚合函数。

print(tips.groupby(['sex','smoker'])['tip'].agg([('tips_mean','mean'),('tips_std','std')]))

在这里插入图片描述
2.多列多函数
对多列进行聚合运算,会产生层次化索引

print(tips.groupby(['sex','smoker'])['total_bill','tip'].agg([('tips_mean','mean'),('tips_std','std')]))

在这里插入图片描述
3.不同列不同函数
如果需要对不同列使用不同的函数运算,可以通过字典来定义映射关系

print(tips.groupby(['day','time'])['total_bill','tip'].agg({'total_bill':'sum','tip':'mean'}))

在这里插入图片描述

发布了51 篇原创文章 · 获赞 299 · 访问量 9189

猜你喜欢

转载自blog.csdn.net/qq_45404396/article/details/104359942