遍历DataFrame指定特征所有组合并计算对应sales列总和
按多特征组合计算销售总额
原始数据
| user_id | sales | example_flag_1 | example_flag_2 | quartile_1 | quartile_2 |
|---|---|---|---|---|---|
| 1 | 10 | 0 | 1 | 1 | 1 |
| 2 | 21 | 1 | 1 | 2 | 2 |
| 3 | 300 | 0 | 1 | 3 | 3 |
| 4 | 41 | 0 | 1 | 4 | 4 |
| 5 | 55 | 0 | 1 | 1 | 1 |
需求
遍历example_flag_1、example_flag_2、quartile_1、quartile_2四个特征的所有可能组合,计算每个组合对应的用户sales总和。
解决方案
使用pandas的groupby方法直接按指定特征分组求和,代码如下:
import pandas as pd # 构造示例DataFrame(实际使用时替换为你的数据) df = pd.DataFrame({ 'user_id': [1,2,3,4,5], 'sales': [10,21,300,41,55], 'example_flag_1': [0,1,0,0,0], 'example_flag_2': [1,1,1,1,1], 'quartile_1': [1,2,3,4,1], 'quartile_2': [1,2,3,4,1] }) # 按四个特征分组,计算sales总和 grouped_result = df.groupby( ['example_flag_1', 'example_flag_2', 'quartile_1', 'quartile_2'] )['sales'].sum().reset_index() # 输出结果 print(grouped_result)
输出示例
运行代码后会得到如下结果(对应示例数据):
| example_flag_1 | example_flag_2 | quartile_1 | quartile_2 | sales |
|---|---|---|---|---|
| 0 | 1 | 1 | 1 | 65 |
| 0 | 1 | 3 | 3 | 300 |
| 0 | 1 | 4 | 4 | 41 |
| 1 | 1 | 2 | 2 | 21 |
内容的提问来源于stack exchange,提问作者Miguel Barrientos
相关产品推荐
相关产品推荐

