如何获取忽略主客场顺序的球队唯一对阵记录
如何获取两支球队之间的唯一对阵记录
原始数据示例
Game_Number, Team_A, Team_B, Date, Team_A_score, Team_B_score 1, IND, USA, 2020-01-01, 10, 20 2, USA, IND, 2020-01-02, 10, 20 3, AUS, IND, 2020-01-02, 30, 15 4, IND, AUS, 2020-01-03, 22, 34 5, UAE, AUS, 2020-01-04, 14, 41
需求说明
忽略两队的主客场顺序,仅保留唯一的对阵组合。上述案例中第1场IND对阵USA、第2场USA对阵IND会被视为同一条对阵记录,最终预期输出如下:
IND, USA AUS, IND UAE, AUS
实现方案
SQL实现
核心逻辑是将每行的两个球队按固定规则(比如字典序)排序后去重,示例代码如下:
SELECT DISTINCT CASE WHEN Team_A < Team_B THEN Team_A ELSE Team_B END AS team1, CASE WHEN Team_A > Team_B THEN Team_A ELSE Team_B END AS team2 FROM game_table;
Python Pandas实现
核心逻辑是对每行的两个球队排序后生成唯一标识,再去重输出:
import pandas as pd # 读取原始数据 df = pd.read_csv("game_data.csv") # 生成排序后的对阵元组作为唯一标识 df["match_key"] = df.apply(lambda row: tuple(sorted([row["Team_A"], row["Team_B"]])), axis=1) # 去重后输出对阵组合 unique_matches = df.drop_duplicates("match_key")[["Team_A", "Team_B"]] print(unique_matches.to_csv(index=False, header=False))
Excel实现
如果使用Excel 365及以上版本,可以直接用函数实现:
- 新增两列,分别用
SORT({B2,C2},,1)获取排序后的两个球队 - 用
UNIQUE()函数对排序后的两列整体去重,得到唯一对阵记录
内容的提问来源于stack exchange,提问作者FreshTransistor
相关产品推荐
相关产品推荐

