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

Python Pandas如何基于单元格条件筛选打印DataFrame指定列

不需要新建中间DataFrame,也没必要折腾迭代、逐行IF判断这类低效方案,pandas原生就能一步写完,代码干净性能还好:

res = df.loc[df['Reviews'].str.contains('Expired', na=False), ['COrder_ID', 'Supplier_Name']]
print(res)

几点说明

  • 用loc是标准写法,比连续方括号的链式索引稳妥,不会碰到SettingWithCopyWarning的坑
  • 加na=False是给空值兜底:如果Reviews列里有NaN,str.contains默认会返回NaN,直接塞到布尔索引里会报错,加上这个参数空值会直接被判定为不匹配,不会出问题
  • 别用循环/逐行判断:不管是iterrows还是apply逐行走if判断,数据量上来之后速度比这种原生向量化操作慢几十上百倍,完全没必要。

你之前跑全量列筛选的结果参考:
筛选结果截图

如果硬要写逐行判断的逻辑(仅做演示,生产环境别用),列表推导式写出来是这样:

# 性能极差,仅作逻辑演示
target_data = [
    (row.COrder_ID, row.Supplier_Name)
    for _, row in df.iterrows()
    if isinstance(row.Reviews, str) and 'Expired' in row.Reviews
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:31:15