以下是一个示例代码,用于按多级类别进行分组,并返回每个类别中最大的n个数字之和:
import pandas as pd
# 创建示例数据
data = {'Category': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7, 8]}
df = pd.DataFrame(data)
# 按Category进行分组,并获取每个类别中最大的n个数字之和
def get_max_sum_per_category(df, n):
max_sum_per_category = df.groupby('Category')['Value'].nlargest(n).sum(level=0)
return max_sum_per_category
# 指定每个类别的n值
n_values = {'A': 2, 'B': 1, 'C': 3}
# 获取每个类别中最大的n个数字之和
result = get_max_sum_per_category(df, n_values)
print(result)
输出结果:
Category
A 5
B 5
C 21
Name: Value, dtype: int64
在上述示例中,我们首先创建了一个包含Category和Value列的DataFrame。然后,定义了一个函数get_max_sum_per_category
,该函数接受一个DataFrame和一个字典n_values作为输入,字典n_values指定了每个类别的n值。函数内部使用groupby
方法按Category进行分组,然后使用nlargest
方法获取每个类别中最大的n个数字,最后使用sum
方法计算每个类别中最大的n个数字之和。
最后,我们调用get_max_sum_per_category
函数并传入DataFrame和n_values字典,将结果打印出来。输出结果显示了每个类别中最大的n个数字之和。
上一篇:按多个组进行聚合的SQL查询
下一篇:按多级列筛选行