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

如何基于FTR列生成热刺赛事积分列:匹配特定值并设其余为0

问题分析与解决方案

你的代码出错核心在于判断列用错了:你本该基于FTR(终场结果)列做判断,却误用到了要生成的Points列——这列在运行代码前要么不存在,要么没有对应数据,导致所有条件都不成立,最终全部走default逻辑,所以所有值都变成0。

另外np.select的choices长度要和conditions严格对应,你有2个条件,choices只需要2个值,剩下的情况交给default处理即可。

正确写法(用np.select)

import numpy as np

# 基于FTR列设置判断条件
conditions = [
    Tottenham['FTR'] == 'Tottenham',
    Tottenham['FTR'] == 'Draw'
]

# 对应条件的积分值(如果需要字符串类型就改成'3','1')
choices = [3, 1]

# 其他所有情况(输球)直接设为0
Tottenham['Points'] = np.select(conditions, choices, default=0)

更简洁的写法(用字典映射)

如果你觉得np.select有点繁琐,用map+fillna更直观:

# 建立结果与积分的映射关系
points_mapping = {
    'Tottenham': 3,
    'Draw': 1
}

# 映射FTR列的值,找不到的结果(输球)填充为0
Tottenham['Points'] = Tottenham['FTR'].map(points_mapping).fillna(0)

这样就能准确生成热刺每场比赛的积分:赢球得3分,平局得1分,输球得0分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:43:24