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

如何在pandas中使用字典和正则将Series字符串列的IPL球队名转换为缩写

解决方案

你可以通过正则提取Result列中的球队全称,再映射为对应缩写实现需求,具体实现代码如下:

import re

# 按球队全称长度降序排序,避免短队名先匹配引发的错误
sorted_team_names = sorted(temp.keys(), key=lambda x: len(x), reverse=True)
# 构造正则匹配模式
match_pattern = r'(' + '|'.join(sorted_team_names) + r')'

# 1. 忽略大小写提取Result中的球队全称
# 2. 转为全大写匹配temp字典的键
# 3. 映射为对应缩写
df['Result'] = df['Result'].str.extract(match_pattern, flags=re.IGNORECASE)[0].str.upper().map(temp)

注意事项

  • 如果你的Result列存在比赛取消、无结果等异常值,提取后会得到NaN,可根据业务需要自行填充,比如填充为'No Result'的代码为:df['Result'] = df['Result'].fillna('No Result')
  • 如果你希望保留Result列原有内容,仅替换球队全称为缩写,可以用以下代码实现:
import re

# 构造不区分大小写的替换映射
replace_map = {re.compile(k, re.IGNORECASE): v for k, v in temp.items()}
df['Result'] = df['Result'].replace(replace_map, regex=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:27:03