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

Pandas DataFrame拆分match列为Home/Away列触发KeyError问题求助

解决Pandas中KeyError: 'match'的问题

你触发KeyError: 'match'的核心原因是你已经将match列设置为DataFrame的索引,此时match不再是普通列,无法通过df['match']访问。而拆分result列正常运行,是因为它仍保留为DataFrame的列。

方案1:先拆分match列,再设置索引

先完成拆分操作,再把match列设为索引,操作时match仍是普通列:

修改主函数部分代码:

if __name__ == "__main__":
    # 先创建DataFrame,不立即设置索引
    df = pd.DataFrame(_get_rows(matchlink))
    # 拆分match列为Home和Away
    df[['Home','Away']] = df['match'].str.split(" - ",expand=True) 
    # 拆分result列为HomeScore和AwayScore
    df[['HomeScore','AwayScore']] = df['result'].str.split(":",expand=True) 
    # 再设置match为索引
    df = df.set_index("match")
    df = df.sort_values('odds1')

    print(df)

方案2:从索引中提取值进行拆分

如果必须先设置索引,可以通过df.index访问match的索引值,再拆分:

修改拆分match的代码行,主函数完整代码如下:

if __name__ == "__main__":
    df = pd.DataFrame(_get_rows(matchlink)).set_index("match")
    df.to_dict('tight')
    # 改用索引拆分match内容
    df[['Home','Away']] = df.index.str.split(" - ",expand=True) 
    df[['HomeScore','AwayScore']] = df['result'].str.split(":",expand=True) 
    df = df.sort_values('odds1')

    print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:35:41