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

如何在DataFrame中复制并转换足球比赛数据?

解决足球比赛DataFrame转换问题

核心思路

把每场比赛拆分为两条记录:一条以主队为Team、客队为Opponent;另一条以客队为Team、主队为Opponent,比赛结果保持不变,最后合并所有记录并按球队名称排序。

代码实现

import pandas as pd

# 构造示例原DataFrame(替换成你自己的数据源即可)
data = {
    '日期': ['2017年5月21日周日15:00', '2017年5月18日周四19:45', '2017年5月17日周三19:45', '2017年5月16日周二20:00'],
    '主队': ['A', 'C', 'E', 'B'],
    '客队': ['B', 'D', 'A', 'C'],
    '比赛结果': ['A', 'D', 'E', '平局']
}
df = pd.DataFrame(data)

# 生成主队视角的记录
home_records = df.copy()
home_records.rename(columns={'主队': 'Team', '客队': 'Opponent'}, inplace=True)

# 生成客队视角的记录
away_records = df.copy()
away_records.rename(columns={'客队': 'Team', '主队': 'Opponent'}, inplace=True)

# 合并两个视角的记录并重置索引
final_df = pd.concat([home_records, away_records], ignore_index=True)

# 按Team列排序,匹配期望的结果顺序
final_df = final_df.sort_values(by='Team', ignore_index=True)

# 查看最终结果
print(final_df)

最终输出结果

日期TeamOpponent比赛结果
2017年5月21日周日15:00ABA
2017年5月17日周三19:45AEE
2017年5月21日周日15:00BAA
2017年5月16日周二20:00BC平局
2017年5月16日周二20:00CB平局
2017年5月18日周四19:45CDD
2017年5月18日周四19:45DCD
2017年5月17日周三19:45EAE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:45:46