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

如何用lambda函数筛选属于多个指定浮点区间的DataFrame列值

实现方案

该功能完全可以通过lambda函数实现,无论是筛选符合区间条件的数值,还是基于区间生成分箱新列都支持。

场景1:筛选满足任意开区间条件的行

先定义你的区间列表:

import pandas as pd
bins = [(41.2, 44.1), (34.1, 38.2), (31.2, 32.4), (29.4, 31.2), (26.5, 28.6), (21.1, 23.5)]

直接通过apply调用lambda完成筛选,lambda内用any()判断是否命中任意区间:

# 代码中的「待匹配列」替换为你实际要处理的列名
filtered_df = df[df['待匹配列'].apply(lambda x: any(left < x < right for left, right in bins))]

场景2:基于区间生成分箱新列

如果需要给每个数值标记所属的区间,未命中的标记为无匹配,可以用以下写法:

df['分箱结果'] = df['待匹配列'].apply(
    lambda x: next((f"{left}-{right}" for left, right in bins if left < x < right), "无匹配")
)

补充说明

如果你的DataFrame数据量超过10万行,更推荐用pandas原生的pd.cut()方法实现,执行效率会比逐行apply lambda高很多,但如果是中小数据集、或追求写法简洁,lambda方案完全够用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:09:01