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

如何从pandas DataFrame指定列的元素中分离提取数值?

pandas提取DataFrame指定列内嵌数字的实现方案

现有pandas DataFrame的col1列存储下划线拼接的字母+数字格式字符串,列值样例为['a_1','b_2','c_3','d_4'],需要逐行提取每个元素中的数字部分,可按以下两种场景选择实现方式:

  • 通用场景(推荐):正则匹配提取
    用pandas原生字符串接口的str.extract()方法,通过正则捕获连续数字段,不管字符串格式是否完全统一,只要内含连续数字都能正确提取,适配性最强:
import pandas as pd

# 构造样例DataFrame
df = pd.DataFrame({'col1': ['a_1','b_2','c_3','d_4']})

# 提取数字部分,默认返回字符串类型,需要整数可追加.astype(int)
df['num_part'] = df['col1'].str.extract(r'(\d+)')
# 转整数类型写法
# df['num_part'] = df['col1'].str.extract(r'(\d+)').astype(int)
  • 固定格式场景:分隔符拆分
    如果col1列所有值都严格遵循前缀_数字的下划线分隔格式,直接按下划线拆分取第二段即可,运行性能更高:
# 按下划线拆分后取索引为1的片段(即数字部分)
df['num_part'] = df['col1'].str.split('_').str[1]

两种方法处理后的输出结果一致,样例如下:

col1num_part
a_11
b_22
c_33
d_44

注意:如果某行元素中不存在数字,正则提取方法会返回空值NaN,不会触发运行报错,可按需通过fillna()方法做缺失值填充处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:25:05