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

如何用Pandas按分组+数值范围筛选,求指定列最小值?

解决Pandas筛选分组求最小值的问题

你之前的代码逻辑偏离了需求——你试图用pd.cut按B列的区间分组,但实际需求是先筛选B列处于0.2-0.5范围的数据,再按A列分组计算C列最小值,这才是导致AssertionError的核心原因。

正确实现步骤

  1. 筛选数据:先过滤出B列值在[0.2, 0.5]范围内的行(包含边界,匹配期望输出的逻辑)
  2. 分组聚合:按A列分组,计算每个分组下C列的最小值
  3. 格式整理:将结果转换为期望的DataFrame结构

完整代码

import pandas as pd

# 给定的DataFrame
df = pd.DataFrame({
    'A': ['a','b','a','b','a','b','a','b'],
    'B': [0.1,0.2,0.3,0.4,0.5,0.46,0.76,.9],
    'C': [10,20,40,54,67,35,90,33]
})

# 1. 筛选B列在0.2到0.5之间的数据(包含边界)
filtered_df = df[(df['B'] >= 0.2) & (df['B'] <= 0.5)]

# 2. 按A分组,计算C的最小值
result = filtered_df.groupby('A')['C'].min().reset_index()

# 3. 重命名列名以匹配期望输出
result.columns = ['A', 'Min']

print(result)

输出结果

A  Min
0  a   40
1  b   20

补充说明

  • 筛选条件(df['B'] >= 0.2) & (df['B'] <= 0.5)确保保留所有符合范围的行,和期望输出逻辑一致
  • groupby('A')['C'].min()仅针对C列计算最小值,避免多余列干扰
  • reset_index()将分组后的索引转换为普通列,方便整理成目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:40:28