You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中基于值按特定分组规则汇总DataFrame?

实现方法

可以用Pandas的分组(groupby)结合自定义函数来完成这个需求,具体代码和步骤如下:

1. 构造原始DataFrame(若已有数据可跳过此步骤)

import pandas as pd

data = {
    'Node_Name': ['Abc1', 'Abc1', 'Zxd', 'Zxd', 'Zxd', 'Ddd', 'Ddd', 'Ddd', 'Ddd'],
    'size': [10, 20, 30, 40, 80, 10, 40, 80, 100],
    'count': [2, 2, 3, 3, 3, 4, 4, 4, 4]
}
df = pd.DataFrame(data)

2. 核心处理代码

# 定义分组处理逻辑的函数
def process_group(group):
    # 取组内的count值(组内count统一,取第一个即可)
    group_count = group['count'].iloc[0]
    if group_count <= 2:
        # count≤2时取size的最小值
        return pd.Series({'size': group['size'].min(), 'count': group_count})
    else:
        # count≥3时,计算总和减去最大值(即去掉最大size后的求和)
        total_size = group['size'].sum() - group['size'].max()
        return pd.Series({'size': total_size, 'count': group_count})

# 按Node_Name分组并应用处理函数,最后重置索引
result_df = df.groupby('Node_Name').apply(process_group).reset_index()

# 查看结果
print(result_df)

3. 结果验证

运行代码后会输出目标DataFrame:

Node_Name  size  count
0      Abc1    10      2
1       Ddd   130      4
2       Zxd    70      3

内容的提问来源于stack exchange,提问作者user1471980

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:22:36