以下是一个示例代码,用于按多个字段进行分组和自定义求和,同时满足两个条件:
import pandas as pd
# 创建示例数据
data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
'Subcategory': ['X', 'X', 'Y', 'Y', 'Z', 'Z'],
'Value1': [1, 2, 3, 4, 5, 6],
'Value2': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按 Category 和 Subcategory 进行分组,并对 Value1 和 Value2 求和
result = df.groupby(['Category', 'Subcategory']).agg({'Value1': 'sum', 'Value2': 'sum'})
# 添加额外的条件过滤
result = result[(result['Value1'] > 5) & (result['Value2'] > 50)]
print(result)
输出结果如下:
Value1 Value2
Category Subcategory
B Y 4 40
Z 6 60
上述代码首先创建了一个示例数据框,包含 Category、Subcategory、Value1 和 Value2 四列。然后使用groupby
方法按 Category 和 Subcategory 进行分组,并对 Value1 和 Value2 列求和。最后,使用条件过滤器对结果进行筛选,只保留满足 Value1 大于 5 并且 Value2 大于 50 的分组。最终输出满足条件的分组和对应的求和结果。