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

如何用一行Pandas代码筛选DataFrame重复行(无重复则显示None)

解决Pandas按full_name筛选重复行并处理无重复的情况

你的代码存在两个问题:

  1. Lambda表达式语法错误:Python三元表达式的正确格式是结果1 if 条件 else 结果2,你写反了顺序;且groupby.filter()要求lambda返回布尔值(用于判断是否保留整个组),不能直接返回字符串。
  2. groupby.filter()本身仅返回符合条件的行组成的DataFrame,无法在筛选逻辑内直接返回'None',需要额外判断筛选结果是否为空。

正确的一行代码实现

方法1(Python 3.8+,用海象运算符简化)

mktg_table = (filtered := mktg_employees.groupby('full_name').filter(lambda x: len(x) > 1)) if not filtered.empty else 'None'

方法2(兼容所有Python版本)

mktg_table = mktg_employees.groupby('full_name').filter(lambda x: len(x) > 1) if not mktg_employees.groupby('full_name').filter(lambda x: len(x) > 1).empty else 'None'

逻辑说明

  • groupby('full_name').filter(lambda x: len(x) >1):按full_name分组后,仅保留组内行数大于1的组(即重复full_name对应的所有行)。
  • 条件判断部分:检查筛选后的DataFrame是否为空,为空则返回'None',否则返回筛选结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:17:03