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

如何使用正则表达式从DataFrame中提取数据并修正数值格式

问题根因
  • pd.Series.str 系列方法仅对字符串类型元素生效,列中原本为整型的数值调用该类方法时会直接返回NaN,这是你运行代码后首行出现空值的原因
  • 你现有的代码仅处理了first列,未处理second列,所以second列的特殊符号没有被清除
修正代码

仅处理单列的写法

frame = pd.DataFrame({'first': [123, '32^'], 'second': [23,'13_']})
# 先将列转为字符串,提取数字后再转回整型
frame['first'] = frame['first'].astype(str).str.extract(r'(\d+)', expand=False).astype(int)

批量处理所有列的写法

如果需要对全表所有列统一做数值提取,直接批量处理即可:

frame = pd.DataFrame({'first': [123, '32^'], 'second': [23,'13_']})
# 全表先转字符串→逐列提取数字→全表转整型
frame = frame.astype(str).apply(lambda col: col.str.extract(r'(\d+)', expand=False)).astype(int)

运行后得到的结果为:

first  second
0    123      23
1     32      13

所有值均为纯整型,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:03