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

Python Pandas过滤后记录数反而增加?求原因分析

可能的原因及分析
  • 合并操作引入重复/冗余数据
    要是你用pd.concat()直接合并两个过滤后的DataFrame却没加drop_duplicates(),或者用merge()时选了how='outer'这类会保留所有行的连接方式,会导致合并后的DataFrame行数直接超过单个过滤器的结果。哪怕第三个过滤器筛掉一部分,剩余数量也可能比之前的单结果多。比如A过滤器出100条,B过滤器出80条,其中50条重复,合并后不处理就是180条,哪怕筛掉50条还剩130条,比原来的100多。

  • 第三个过滤器的逻辑写反或出错
    比如本来要筛score >= 60,结果写成score <= 60;或者把&写成|,把多条件的“且”变成“或”,导致本该被排除的行全被保留,甚至纳入更多符合错误条件的行,自然总数上升。

  • 前两个过滤器的结果存在大量重叠行
    两个过滤器的筛选范围有交集,但合并时没去重,合并后的总条数已经比单过滤器结果多。比如A和B过滤器各筛出100条,其中70条是重复的,合并后变成130条,第三个过滤器只筛掉10条,剩下120条还是比原来的100多。

  • 合并后字段类型异常导致过滤失效
    两个原始过滤后的DataFrame中,某个用于第三个过滤器的字段类型不一致(比如一个是int,一个是str),合并后该字段变成object类型。这时候用数值条件过滤就会出问题:比如字符串'5'和'10'比较,'5' > '10'会被判定为True,导致原本不符合数值条件的行被误筛进来,总数变多。

  • 合并时的索引或行匹配错误
    比如用merge()时指定了错误的连接键,导致出现笛卡尔积(比如连接键有重复值,一对多匹配),合并后的行数直接暴增。比如A有10条,B有10条,连接键各有2个重复,可能合并出200条,哪怕第三个过滤器筛掉一半,还剩100条,比原来的10多很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:55:18