如何在DataFrame中按组筛选仅掌握日语的人员记录
实现思路
按用户名分组后同时校验两个条件:
- 该用户掌握的唯一语言数量为1
- 该用户掌握的唯一语言是日语
筛选出符合条件的用户后匹配原表记录即可。
完整代码示例
方法1:transform 简洁写法(一行完成筛选)
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'Name': ['Tom', 'Rose', 'Jack', 'Jack', 'Mike', 'Mike'], 'Language': ['Japanese', 'Japanese', 'Chinese', 'Japanese', 'Japanese', 'French'] }) # 核心筛选逻辑 result = df[(df.groupby('Name')['Language'].transform('nunique') == 1) & (df['Language'] == 'Japanese')] # 打印结果 print(result)
方法2:groupby.filter 直观写法
result = df.groupby('Name').filter(lambda x: x['Language'].nunique() == 1 and x['Language'].eq('Japanese').all())
输出结果
Name Language 0 Tom Japanese 1 Rose Japanese
内容的提问来源于stack exchange,提问作者ChilamCheung
相关产品推荐
相关产品推荐

