聚合运算
聚合运算方法
参数 | 使用说明 |
---|---|
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'}))