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

求助:Pandas中assign(home=1)的含义及相关代码功能解析

解析这段Pandas足球比赛数据处理代码

这段代码的核心作用是把原始英超比赛数据(存储在epl DataFrame中),将主客场比赛记录转换成统一结构的单条球队记录,最终合并成适合回归建模的数据集。下面分步拆解关键部分:

1. 拆分处理主客场数据

代码通过pd.concat拼接了两个独立处理的DataFrame,分别对应主场球队和客场球队的记录:

处理主场球队记录

epl[['HomeTeam','AwayTeam','HomeGoals']].assign(home=1).rename(
    columns={'HomeTeam':'team', 'AwayTeam':'opponent','HomeGoals':'goals'}
)
  • 第一步:从epl中提取HomeTeam(主场球队)、AwayTeam(客场球队)、HomeGoals(主场进球数)三列,只保留和主场球队相关的比赛数据。
  • .assign(home=1):新增一列home,所有行的值固定为1,用来明确标记这是主场球队的记录。
  • .rename(...):把列名重命名为通用格式:
    • HomeTeam → team(当前记录的球队)
    • AwayTeam → opponent(当前球队的对手)
    • HomeGoals → goals(当前球队的进球数)

处理客场球队记录

epl[['AwayTeam','HomeTeam','AwayGoals']].assign(home=0).rename(
    columns={'AwayTeam':'team', 'HomeTeam':'opponent','AwayGoals':'goals'}
)
  • 第一步:从epl中提取AwayTeam(客场球队)、HomeTeam(主场球队)、AwayGoals(客场进球数)三列,只保留和客场球队相关的比赛数据。
  • .assign(home=0):新增一列home,所有行的值固定为0,标记这是客场球队的记录。
  • .rename(...):同样重命名为通用格式:
    • AwayTeam → team(当前记录的球队)
    • HomeTeam → opponent(当前球队的对手)
    • AwayGoals → goals(当前球队的进球数)

2. 合并成最终数据集

pd.concat([...])将上述两个处理后的DataFrame上下拼接,最终得到的goal_model_data每一行代表一支球队在单场比赛中的独立记录,结构统一为:

  • team:参赛球队名称
  • opponent:对手球队名称
  • goals:该球队在本场比赛的进球数
  • home:是否主场作战(1=主场,0=客场)

这种统一结构的数据集,能直接用于回归建模(比如预测球队进球数),home字段可以作为核心特征之一,用来分析主场优势对进球数的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:56:07