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

如何对Pandas列的唯一值调用apply方法筛选含指定关键词的内容

错误原因
  • 第一处错误:unique是pandas Series的方法,必须加括号执行才能拿到结果,你写的sal['JobTitle'].unique只是引用了方法本身,没有实际调用获取唯一值列表。
  • 第二处错误:unique()执行后返回的是NumPy数组类型,该类型没有apply方法,只有pandas的Series/DataFrame对象才有该方法。
可行解决方案

以下三种方案都可以实现筛选含'chief'的唯一职位名称的需求:

方案1:将唯一值转为Series后调用apply

先把unique()返回的数组转为pandas Series,再调用apply做判断,代码如下:

# 得到每个唯一职位对应的布尔判断结果
judge_result = pd.Series(sal['JobTitle'].unique()).apply(lambda x: chief_string(x))
# 直接筛选出符合条件的职位名称
chief_unique_jobs = pd.Series(sal['JobTitle'].unique())[judge_result]

方案2:使用列表推导式直接筛选

不需要借助pandas的apply方法,直接遍历唯一值数组做判断,写法更简洁高效:

chief_unique_jobs = [x for x in sal['JobTitle'].unique() if chief_string(x)]

方案3:先筛选原数据再去重(更推荐的pandas写法)

先从原数据中筛选出职位含'chief'的所有行,再对职位列取唯一值,逻辑更直观:

chief_unique_jobs = sal[sal['JobTitle'].apply(lambda x: chief_string(x))]['JobTitle'].unique()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 05:36:07