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)
输出结果:
成绩
年龄
10 182
11 176
12 88
可以看到,我们按照年龄将数据集分成了三组,然后对每组的成绩进行了求和。同样,我们还可以按照多列进行分组,例如按照年龄和性别进行分组:
result = df.groupby(['年龄', '性别']).sum()
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)
输出:
出生日期
性别
女 2
男 3
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)
输出:
体重(公斤)
身高(米)
1.60 50
1.65 55
1.70 60
1.75 65
1.80 70
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)
输出:
销售员
A 300
B 400
C 300
Name: 销售金额, dtype: int64
总结
Pandas的group-by函数可以对数据集进行分类汇总,实现各种统计操作。常用的操作函数包括count、mean、sum等。掌握pandas的group-by函数可以使得数据分析变得更加容易和高效。
极客教程