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

Pandas DataFrame按ID分组取Value最小值并保留Check列Y值的方案

问题解决方法

你现有代码无法得到预期结果的核心原因是:空字符串''的字典序小于'Y',使用全局min聚合时,Check列会优先返回空值,和你「只要分组内有Y就保留Y」的需求完全相反。

你可以为不同列指定不同的聚合规则实现需求:Check类列使用max聚合('Y'的字典序大于空值,分组内只要存在一个Y,聚合结果就会返回Y),Value列使用min聚合取对应ID的最小值,实现代码如下:

import pandas as pd

# 先将缺失值填充为空字符串
df = df.fillna('')

# 按ID分组,不同列应用不同聚合规则
df_agg = df.groupby('ID', as_index=False).agg({
    'Check 1': 'max',
    'Check 2': 'max',
    'Value': 'min'
})

运行上述代码得到的df_agg就是你需要的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:45:07