如何统计组合而非排列的出现次数?实现球队对阵次数合并统计
合并主客场的球队对阵次数统计方案
可以通过将每场对阵的两支球队按固定规则排序后生成统一组合,再统计次数,就能解决主客场拆分统计的问题。
实现代码
import pandas as pd # 生成统一的球队组合(按字母顺序排序) data['team_combination'] = data.apply(lambda row: tuple(sorted((row['home_team'], row['away_team']))), axis=1) # 统计合并后的对阵次数 combined_counts = data['team_combination'].value_counts() # 可选:将结果转换为更直观的表格格式 combined_counts = combined_counts.reset_index() combined_counts.columns = ['team_pair', 'total_matches'] combined_counts[['team_a', 'team_b']] = pd.DataFrame(combined_counts['team_pair'].tolist(), index=combined_counts.index) combined_counts = combined_counts.drop('team_pair', axis=1)
代码解释
- 使用
apply结合sorted,把每场比赛的主客场球队按字母顺序排序,生成唯一的元组组合(比如阿根廷vs乌拉圭无论主客场都会统一为('Argentina', 'Uruguay')) - 对这个统一组合列执行
value_counts(),即可得到两支球队之间的总对阵次数 - 最后可选的步骤是拆分组合元组为单独列,让结果更易读
内容的提问来源于stack exchange,提问作者E.Cuell
相关产品推荐
相关产品推荐

