如何获取指定Employee_ID对应的Name与Salary?代码问题解决
问题分析与解决方法
错误原因
你使用&(逻辑与)连接多个等于判断,这要求某一行的Employee_ID同时等于264、374、893,显然单个ID不可能满足所有条件,因此返回空结果。
正确实现方法
方法1:使用isin()(推荐,代码简洁易维护)
这是pandas中筛选多个值的标准方式,把目标ID放进列表,用isin()匹配:
target_ids = [264, 374, 893] result = df[df["Employee_ID"].isin(target_ids)][["Name", "Salary"]] print(result)
方法2:使用逻辑或|
如果坚持用等于判断,需要把逻辑与&换成逻辑或|,同时每个条件要加括号(避免运算符优先级问题):
result = df[(df["Employee_ID"] == 264) | (df["Employee_ID"] == 374) | (df["Employee_ID"] == 893)][["Name", "Salary"]] print(result)
方法3:使用query()
用query()可以写出更接近自然语言的筛选条件:
result = df.query("Employee_ID in [264, 374, 893]")[["Name", "Salary"]] print(result)
执行结果
三种方法都会返回如下结果:
Name Salary 3 Mary 210000 5 Cindy 95000 8 Frank 133000
内容的提问来源于stack exchange,提问作者Pere
相关产品推荐
相关产品推荐

