python 实现分组求和与分组累加求和代码

1. 分组求和

分组求和是在数据分组的基础上,对各组数据进行时间、空间、数量等方面的统计,将同一组内的数据项合并为一项。在Python中,可以使用pandas库实现分组求和的操作。

1.1 pandas库介绍

pandas是Python中常用的数据分析库,主要用于数据处理、数据分析和数据可视化。它可以轻松处理各种格式的数据,包括CSV、Excel、SQL等,支持数据的重塑、合并、分组计算、时间序列等操作。

在Python中,一般使用以下语句导入pandas库:

import pandas as pd

1.2 分组求和的实现

假设有一个DataFrame数据如下:

姓名 性别 科目 成绩
张三 语文 80
张三 数学 90
李四 语文 85
李四 数学 95

如果想按照性别进行分组求和,可以使用如下代码:

import pandas as pd

df = pd.read_excel('score.xlsx')

result = df.groupby(['性别'])['成绩'].sum()

print(result)

代码中,通过read_excel函数读取数据文件,然后使用groupby函数按照性别进行分组,最后使用sum函数对分组后的数据进行求和。结果如下:

性别

女 180

男 170

Name: 成绩, dtype: int64

说明对于性别为女的组,其分数总和为180,对于性别为男的组,其分数总和为170。

2. 分组累加求和

与分组求和不同,分组累加求和是将同一分组内的数据逐个累加求和,将结果保存在一个新的列中。同样,可以使用pandas库实现分组累加求和的操作。

2.1 分组累加求和的实现

仍然使用上述数据,如果想要按照姓名分组,对每个人的成绩进行累加求和,并且将结果保存在一个新的列中,可以使用如下代码:

import pandas as pd

df = pd.read_excel('score.xlsx')

result = df.groupby(['姓名'])['成绩'].apply(lambda x: x.cumsum())

df['累计成绩'] = result

print(df)

代码中,通过groupby函数按照姓名进行分组,然后使用apply函数对每个分组进行累加求和,最后使用cumsum函数进行计算。结果如下:

姓名 性别 科目 成绩 累计成绩
张三 语文 80 80
张三 数学 90 170
李四 语文 85 85
李四 数学 95 180

可以看到,结果中新增了一列“累计成绩”,它记录了每个人的成绩累计求和的结果。

总结

本文介绍了Python中分组求和和分组累加求和的实现方法,使用了pandas库来处理数据。对于分组求和,可以使用groupby函数和sum函数,对数据进行分组和求和;对于分组累加求和,可以使用groupby函数、apply函数和cumsum函数,对同一分组内的数据进行累加求和,并且将结果保存在一个新的列中。以上方法可以在数据分析和处理中发挥重要作用,希望本文能够对读者有所启发。

后端开发标签