如何基于多条件筛选DataFrame中满足attack指标要求的name对应全量行
实现方法
思路
- 先筛选出
skill为attack的行,从中提取同时满足score>50、percentage>50的球员姓名,去重后得到符合要求的名单 - 用该名单过滤原DataFrame,保留对应球员的所有行即可
代码示例
import pandas as pd # 你实际使用时可以直接替换成你自己的DataFrame变量 data = [ ['messi','attack',160,80], ['messi','fitness',10,5], ['messi','pass',30,15], ['neymar','attack',48,60], ['neymar','fitness',20,25], ['neymar','pass',12,15], ['ronaldo','attack',60,60], ['ronaldo','fitness',30,30], ['ronaldo','pass',10,10], ['casilas','attack',10,25], ['casilas','fitness',20,50], ['casilas','pass',10,25], ['owen','attack',20,20], ['owen','fitness',70,70], ['owen','pass',10,10] ] df = pd.DataFrame(data, columns=['name','skill','score','percentage']) # 核心筛选逻辑 qualified_names = df[(df['skill'] == 'attack') & (df['score'] > 50) & (df['percentage'] > 50)]['name'].unique() result = df[df['name'].isin(qualified_names)] # 输出验证 print(result)
运行代码得到的result变量就是你需要的预期输出结果。
内容的提问来源于stack exchange,提问作者Danish
相关产品推荐
相关产品推荐

