📅  最后修改于: 2023-12-03 15:33:24.972000             🧑  作者: Mango
在实际应用中,我们通常会遇到需要对数据进行汇总处理的情况。比如:对某个公司的某个月份的销售数据进行统计,需要汇总各个部门的销售总和;对某个地区的电力数据进行统计,需要汇总各个发电站的发电总量等等。
而这个时候,pandas 就提供了一种非常便捷的方法来对数据进行处理,那就是通过根据 ID 求和来压缩数据帧。
我们以一份某公司员工销售数据为例,假设数据如下表所示:
| ID | Name | Department | Sales | |----|-------|------------|-------| | 1 | 张三 | 电商部 | 1000 | | 2 | 李四 | 电商部 | 1500 | | 3 | 王五 | 实体店部 | 2000 | | 4 | 赵六 | 实体店部 | 1200 | | 5 | 钱七 | 电商部 | 800 | | 6 | 周八 | 实体店部 | 600 | | 7 | 吴九 | 客服部 | 300 | | 8 | 郑十 | 客服部 | 500 |
我们可以使用 pandas 库中的 groupby() 函数,来对 ID 进行分组,并对 Sales 进行求和操作。
import pandas as pd
# 创建数据帧
df = pd.DataFrame({'ID': [1, 2, 3, 4, 5, 6, 7, 8],
'Name': ['张三', '李四', '王五', '赵六', '钱七', '周八', '吴九', '郑十'],
'Department': ['电商部', '电商部', '实体店部', '实体店部', '电商部', '实体店部', '客服部', '客服部'],
'Sales': [1000, 1500, 2000, 1200, 800, 600, 300, 500]})
# 按照 ID 分组,并求和 Sales
df_sum = df.groupby(['ID', 'Name']).sum()
# 打印处理后的数据
print(df_sum)
结果如下所示:
Sales
ID Name
1 张三 1000
2 李四 1500
3 王五 2000
4 赵六 1200
5 钱七 800
6 周八 600
7 吴九 300
8 郑十 500
通过以上操作,我们成功地将原数据进行了压缩,得到了以 ID 为索引,Sales 为值的新数据帧,并可以方便地进行下一步的数据分析。如果你还没有掌握 pandas 库中的 groupby() 函数,那么这篇文章对你来说是非常重要的参考资料,希望它可以对你有所帮助。