如何更简洁地统计Pandas DataFrame中两队的交手次数与胜负情况?
更简洁的MI与CSK交手数据统计方案
你可以通过统一对阵组合的方式简化代码,不用写冗长的条件判断或者重复分组操作:
步骤1:生成统一的对阵组合列
把每场比赛的两支球队按固定规则(比如字母顺序)排序后组合成元组,这样不管Team1和Team2谁在前,MI和CSK的对阵都会被归为同一个组合:
ipl['H2H_Pair'] = ipl.apply(lambda row: tuple(sorted([row['Team1'], row['Team2']])), axis=1)
步骤2:筛选目标对阵并统计数据
直接筛选出MI和CSK的对阵记录,一次性统计总场次和各自胜场:
# 定义目标对阵组合(提前排序确保统一) mi_csk_pair = tuple(sorted(['Mumbai Indians', 'Chennai Super Kings'])) # 筛选所有MI vs CSK的比赛 mi_csk_matches = ipl[ipl['H2H_Pair'] == mi_csk_pair] # 总交手次数 total_matches = len(mi_csk_matches) # 两队获胜场次统计 win_stats = mi_csk_matches['WinningTeam'].value_counts() print(f"总交手次数: {total_matches}") print("获胜场次:") print(win_stats)
方案优势
- 避免了原方法中复杂的多条件判断,代码更简洁易读
- 不用重复执行分组操作,逻辑更统一
- 可以直接复用这套逻辑统计任意两支球队的交手数据,扩展性更强
内容的提问来源于stack exchange,提问作者user311790
相关产品推荐
相关产品推荐

