Python如何匹配两个Excel中的足球赛事数据并提取对应胜负结果?
相关技术名词
- 数据框合并(DataFrame Merge):pandas中用于将两个表格按指定列关联匹配的操作,是实现该需求的核心技术
- 多键匹配:合并时指定多个列作为匹配条件,本次需求就是同时匹配
Home(主队)、Away(客队)两列 - Excel读写:pandas对Excel文件的读取、输出操作
实现思路
- 用pandas分别读取爬虫输出的赛程Excel、手动维护的克星对阵源Excel,生成两个DataFrame对象
- 以
Home、Away两个字段作为共同匹配键,对两个DataFrame做内连接(inner join),内连接只会保留两个表中匹配键完全一致的条目 - 提取匹配结果中的
Result列就是需要的对应胜负结果,也可导出为新的Excel留存
可直接复用的代码
在你现有代码的末尾追加以下代码即可实现匹配功能:
# ---------------------- 新增匹配功能代码 ---------------------- # 1. 读取刚生成的赛程表Excel fixture_df = pd.read_excel(name) # 2. 读取手动维护的克星对阵源表,这里替换成你自己的源文件实际路径 bete_noire_df = pd.read_excel("你的手动维护源文件路径.xlsx") # 3. 按主队、客队双字段匹配,内连接只保留两边都有的对阵 match_result = pd.merge( left=fixture_df, right=bete_noire_df, on=["Home", "Away"], # 同时匹配主队、客队两个字段 how="inner" # 内连接,仅保留两边完全匹配的条目 ) # 4. 输出结果 print("匹配到的克星对阵及结果如下:") print(match_result) # 可选:导出匹配结果为新Excel match_result.to_excel(f"匹配结果-{date}.xlsx", index=False)
学习路径指引
- 先掌握pandas核心数据结构Series、DataFrame的基础操作,比如增删改查、条件过滤
- 重点学习pandas的merge、join、concat三种数据合并方式,区分不同连接类型(内连接、左连接、右连接、外连接)的适用场景
- 了解基础的数据清洗操作,比如球队名大小写、前后空格差异的处理,避免因为文本格式不一致导致匹配失败(比如“Liverpool”和“ liverpool ”会被判定为不同值,需要提前做标准化处理)
内容的提问来源于stack exchange,提问作者Aymen Eddaoudi
相关产品推荐
相关产品推荐

