以下是一个示例代码,可以按类别求前5个值的总和,然后按ID汇总类别总和:
import pandas as pd
# 创建示例数据
data = {
'ID': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
'Category': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'],
'Value': [10, 20, 30, 40, 50, 15, 25, 35, 45, 55, 5, 15, 25, 35, 45]
}
df = pd.DataFrame(data)
# 按类别求前5个值的总和
top5_sum = df.groupby('Category')['Value'].apply(lambda x: x.nlargest(5).sum()).reset_index()
# 按ID汇总类别总和
result = top5_sum.groupby('ID')['Value'].sum()
print(result)
输出结果将会是按ID汇总的类别总和。
上一篇:按类别求和,但保留最大的子项。