Pandas 如何使用group-by函数实现数据求和

Pandas 如何使用group-by函数实现数据求和

在本文中,我们将介绍如何使用pandas的group-by函数进行数据分组求和。group-by函数可以实现对数据集按照特定的属性进行分类汇总,然后进行统计分析。实现起来十分简单。

阅读更多:Pandas 教程

Pandas group-by函数的使用

group-by函数可以对数据按照某一列或者多列进行分类,然后对其他列进行统计分析。例如,我们有一个数据集包含了学生的姓名、年龄和成绩:

学生姓名 年龄 成绩
小明 10 90
小张 11 85
小王 10 92
小李 12 88
小赵 11 91

我们可以按照年龄进行分组,然后对成绩进行求和:

import pandas as pd

df = pd.DataFrame({'姓名': ['小明', '小张', '小王', '小李', '小赵'],
                   '年龄': [10, 11, 10, 12, 11],
                   '成绩': [90, 85, 92, 88, 91]})
result = df.groupby('年龄').sum()
print(result)
Python

输出结果:

     成绩
年龄     
10  182
11  176
12   88
Python

可以看到,我们按照年龄将数据集分成了三组,然后对每组的成绩进行了求和。同样,我们还可以按照多列进行分组,例如按照年龄和性别进行分组:

result = df.groupby(['年龄', '性别']).sum()
Python

group-by常用函数

group-by函数支持很多常用的操作函数,下面我们来介绍一下其中几个常用函数。

count

count函数可以对每一组的元素数量进行统计。例如,我们有一个数据集包含了一些人的性别和出生日期:

性别 出生日期
2000-01-01
2003-02-02
2002-03-03
2004-04-04
2001-05-05

我们可以按照性别进行分组,然后统计每组中的元素数量:

import pandas as pd

df = pd.DataFrame({'性别': ['男', '女', '男', '女', '男'],
                   '出生日期': ['2000-01-01', '2003-02-02', '2002-03-03', '2004-04-04', '2001-05-05']})
result = df.groupby('性别').count()
print(result)
Python

输出:

    出生日期
性别       
      2
      3
Python

mean

mean函数可以对每一组的平均值进行统计。例如,我们有一个数据集包含了一些人的身高和体重:

身高(米) 体重(公斤)
1.80 70
1.60 50
1.75 65
1.65 55
1.70 60

我们可以按照身高进行分组,然后统计每组的体重平均值:

import pandas as pd

df = pd.DataFrame({'身高(米)': [1.80, 1.60, 1.75, 1.65, 1.70],
                   '体重(公斤)': [70, 50, 65, 55, 60]})
result = df.groupby('身高(米)').mean()
print(result)
Python

输出:

       体重(公斤)
身高(米)         
1.60         50
1.65         55
1.70         60
1.75         65
1.80         70
Python

sum

sum函数可以对每一组的元素进行求和。例如,我们有一个数据集包含了三个销售员在不同日期的销售金额:

销售员 日期 销售金额
A 2020-01-01 100
A 2020-01-02 200
B 2020-01-01 150
B 2020-01-02 250
C 2020-01-01 300

我们可以按照销售员进行分组,然后统计每个销售员的销售金额总和:

import pandas as pd

df = pd.DataFrame({'销售员': ['A', 'A', 'B', 'B', 'C'],
                   '日期': ['2020-01-01', '2020-01-02', '2020-01-01', '2020-01-02', '2020-01-01'],
                   '销售金额': [100, 200, 150, 250, 300]})
result = df.groupby('销售员')['销售金额'].sum()
print(result)
Python

输出:

销售员
A    300
B    400
C    300
Name: 销售金额, dtype: int64
Python

总结

Pandas的group-by函数可以对数据集进行分类汇总,实现各种统计操作。常用的操作函数包括count、mean、sum等。掌握pandas的group-by函数可以使得数据分析变得更加容易和高效。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册