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

如何正确移除Pandas指定列中的所有非数字文本并提取整数?

错误原因
  • 你使用的re.sub('\D', '', '.*')是对固定字符串.*做非数字字符替换,返回结果为空字符串,因此两列全部被赋值为空值
  • re.sub仅支持对单个字符串做处理,无法直接对Pandas的Series列做批量操作,需要使用Pandas自带的字符串处理方法
正确实现代码
# 先统一转字符串类型,替换所有非数字字符为空后转整数
df['home_score'] = df['home_score'].astype(str).str.replace(r'\D', '', regex=True).astype(int)
df['away_score'] = df['away_score'].astype(str).str.replace(r'\D', '', regex=True).astype(int)
代码说明
  • 先调用astype(str)将列的所有值统一转为字符串类型,避免部分本身是整数的数值调用字符串方法时报错
  • str.replace(r'\D', '', regex=True)是Pandas提供的批量字符串替换方法,会将列中所有值的非数字字符替换为空
  • 最后调用astype(int)将处理后的纯数字字符串转为整数类型,即可满足需求
    处理后原away_score列的2 ET会被转为整数2,其余正常数字也会保留为整数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 10:24:03