约定第一行代码

import pandas as pd

聚合运算

在数据分析中,对数据聚合(求和、平均值等)通常是不可避免的。在将数据分组(groupby)后,新手若不知函数 agg() 的情况下,很有可能写出二三十行的for循环只为求每个分组的平均值。在这里,介绍个强大的函数:agg() ,能让你的代码缩减到一行

创建对象和分组

df1=pd.DataFrame({'sex':list('FFMFMMF'),
                  'smoker':list('YNYYNYY'),
                  'age':[21,30,17,37,40,18,26],
                  'weight':[120,100,132,140,94,89,123]})
df1

代码结果

sexsmokerageweight
0FY21120
1FN30100
2MY17132
3FY37140
4MN4094
5MY1889
6FY26123

1 求单列下聚合

grouped=df1.groupby(['sex','smoker'])
# sex有 F M 二值,smoker有 Y N 二值,故分成四组
grouped['age'].agg('mean')

#代码结果
sex  smoker
F    N         30.0
     Y         28.0
M    N         40.0
     Y         17.5
Name: age, dtype: float64

2 求多列下的聚合

grouped.agg('mean')

代码结果
图1

3 求多种聚合运算

grouped['age'].agg(['min','max'])

代码结果
图2

4 求多种聚合运算的同时更改列名

grouped['age'].agg([('A','mean'),('B','max')])

代码结果
图3

5 不同的列运用不同的聚合函数

grouped.agg({'age':['sum','mean'],'weight':['min','max']})

代码结果
图4

6 使用自定义的聚合函数

def Max_cut_Min(group):
    return group.max()-group.min()

grouped.agg(Max_cut_Min)

代码结果
图5

7 方便的descibe

grouped.describe()

代码结果
图6


世界因代码而改变 Peace Out
世界因代码而改变 Peace Out
最后修改:2020 年 10 月 07 日 03 : 19 PM
如果觉得我的文章对你有用,请随意赞赏