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

如何根据用户选择的Pos及给定价格在Excel列间查找对应值?

Excel多列条件查目标值

需求

根据用户选的Pos列和给定价格,在Excel数据的不同列里筛选,返回对应的目标结果(比如最大值)。

试过的代码

V=data.query("KIO" & "UYT")['KIO'].max()
print(data['KIO'])
print(V)
V=data['GREER'].to_numpy()[data['UYT'].to_numpy() & data['HYEU'].to_numpy()].max()
print(V)

代码问题及修正

  • 第一个query写法错误:query的条件得是合法的字符串逻辑,比如要筛选KIO和UYT同时满足的行,得写成data.query("KIO == 条件值 & UYT == 条件值"),不能直接把列名用&拼接。
  • 第二个numpy数组筛选的问题:多条件筛选时要给每个条件加括号,比如(data['UYT'].to_numpy() == 条件) & (data['HYEU'].to_numpy() == 条件),避免因运算符优先级导致结果出错。

适配需求的示例代码

假设用户选的Pos列是UYT,给定价格是100,要找对应行里GREER列的最大值:

# 定义用户选择的Pos列和目标价格
selected_pos = "UYT"
target_price = 100

# 方式1:用query筛选
max_result = data.query(f"{selected_pos} == {target_price}")['GREER'].max()

# 方式2:用布尔索引,更直观
max_result = data[data[selected_pos] == target_price]['GREER'].max()

print(max_result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:55:30