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

Python中data[data["total_savings"]<400000]式筛选是什么?如何使用?

Pandas布尔索引:你看到的高效数据筛选方法

这是Pandas布尔索引(Boolean Indexing),是Pandas库中针对DataFrame/Series的核心数据筛选手段,专门用于高效过滤结构化数据,也是数据科学、机器学习场景里的常用操作。

为什么它比map()快?

map()是原生Python的逐元素处理方法,本质是在Python层面循环遍历每个元素;而Pandas的布尔索引基于向量化运算,底层用C实现,跳过了Python循环的开销,处理大规模数据集时效率差距会非常明显。

怎么使用布尔索引?

这里举几个常用场景:

  • 基础单条件筛选:就是你看到的写法,先通过条件生成布尔序列,再用它索引原数据:
    # 筛选total_savings小于400000的所有行
    filtered_data = data[data["total_savings"] < 400000]
    
    这里data["total_savings"] < 400000会返回一个和原DataFrame行数一致的布尔Series,值为True的位置就是符合条件的行。
  • 多条件组合筛选:用&(逻辑与)、|(逻辑或)组合条件,记得给每个条件加括号:
    # 筛选储蓄小于40万且年龄大于30的行
    filtered_data = data[(data["total_savings"] < 400000) & (data["age"] > 30)]
    
  • 反向筛选:用~取反布尔条件,筛选不符合原条件的数据:
    # 筛选储蓄大于等于40万的行
    filtered_data = data[~(data["total_savings"] < 400000)]
    
  • Series的筛选:布尔索引同样适用于Pandas Series:
    savings_series = data["total_savings"]
    high_savings = savings_series[savings_series > 100000]
    

注意事项

这个写法只适用于Pandas的DataFrame和Series对象,原生Python列表不能直接这么用,如果要对普通列表做类似操作,需要先把列表转换成Pandas数据结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:15:34