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

Pandas-Python中如何筛选DataFrame某列符合特定条件的取值

你现有代码的逻辑存在错误:b['prod_price'] < 500返回的是一列布尔值,遍历该布尔序列没有实际筛选作用,且循环内直接将整列prod_price赋值给c,最终输出的一定是未过滤的完整列。


实现需求的正确写法

你可以直接用Pandas的布尔索引配合loc方法实现,不需要写循环:

  • 若需要返回过滤后的prod_price列(Series格式):
# 筛选prod_price小于50的值,直接返回对应原值
c = b.loc[b['prod_price'] < 50, 'prod_price']

如果需要调整判断条件,把< 50替换为你需要的规则即可,比如要筛选小于500就改为< 500。

  • 若需要返回Python列表格式的结果:
c = b.loc[b['prod_price'] < 50, 'prod_price'].tolist()
  • 若需要保留prod_price符合条件的整行数据(返回过滤后的完整DataFrame):
filtered_b = b[b['prod_price'] < 50]

效果示例

假设你的b DataFrame原始数据如下:

索引prod_price
030
160
245
355

执行筛选小于50的代码后,得到的c结果为:

0    30
2    45
Name: prod_price, dtype: int64

直接返回符合条件的原值,不会输出布尔判断结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:45:01