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

如何根据用户输入的主客场球队返回对应比赛结果列的值?

问题解决:匹配主队客队返回比赛结果

现有数据表包含home_team(主队)、away_team(客队)、result(比赛结果)三列,需求是:当用户输入主队和客队名称后,匹配数据表中对应的行,返回result列的值(比如输入Arsenal和Leicester City时,返回'H')。但以下代码运行后无输出:

x = input("Enter Home Team: ")
y = input("\nEnter Away Team: ")

def f(x,y):
    return df.loc[df['Col 1'] == x and df['Col 2'] == y, 'Col 3'].item()

问题原因及修正方案

你的代码有两处关键问题:

  • 布尔索引语法错误:Pandas中多条件筛选不能用and,必须用&,且每个条件需要用括号包裹,否则会触发运算优先级错误。
  • 列名不匹配:代码里用了Col 1、Col 2、Col 3,但实际数据表的列名是home_team、away_team、result,导致无法匹配到数据。

另外,item()方法在没有找到匹配结果时会直接报错,建议增加异常处理或者判断逻辑,避免程序崩溃。

修正后的完整代码

import pandas as pd

# 假设这里已经加载了你的数据表,示例数据如下
data = {
    'home_team': ['Arsenal', 'Liverpool'],
    'away_team': ['Leicester City', 'Man United'],
    'result': ['H', 'A']
}
df = pd.DataFrame(data)

x = input("输入主队名称: ")
y = input("\n输入客队名称: ")

def get_match_result(home, away):
    # 用&连接条件,每个条件加括号
    match_row = df.loc[(df['home_team'] == home) & (df['away_team'] == away), 'result']
    # 判断是否找到匹配结果
    if not match_row.empty:
        return match_row.iloc[0]
    else:
        return "未找到对应比赛结果"

# 调用函数并输出结果
print(get_match_result(x, y))

代码说明

  1. 替换了正确的列名,确保和数据表结构一致
  2. 使用&和括号实现多条件筛选,符合Pandas的语法要求
  3. 增加了空值判断,当输入的队名没有匹配记录时,返回友好提示而不是报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:40:34