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

如何在pandas GroupBy分组数据上使用isin()函数实现过滤

报错原因

groupby操作返回的是SeriesGroupBy分组容器对象,没有isin方法,isin是普通Series/DataFrame的专属方法,所以直接对分组对象调用该方法会触发属性不存在报错。

实现代码

你可以通过groupby.apply对每个分组单独执行过滤逻辑,满足需求的代码如下:

# 按AttributeName分组后对每个组单独执行过滤
filtered_df = sample_data.groupby('AttributeName', group_keys=False).apply(
    lambda x: x[~x['From Country'].isin(x['ToCountry'].unique())].drop_duplicates(subset='From Country')
)
print(filtered_df)
代码说明
  • group_keys=False:避免分组键被额外添加为索引,输出格式和原始表结构一致
  • 先调用x['ToCountry'].unique()取当前组ToCountry的唯一值,既提高判断效率也避免重复值干扰
  • drop_duplicates(subset='From Country')保证同组内每个符合条件的From Country只保留对应的唯一一行,符合你的需求
  • 最终输出结果正好符合你的要求:John组仅保留西班牙入境苏格兰的第一行,Sally组仅保留From Country为苏格兰的行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:03