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

如何从dataframe的字符串列中提取数字,过滤非数字内容得到纯数值列

DataFrame指定列数据清洗(提取纯数字内容)

需求规则如下:

  • 对DataFrame指定列做清洗,若单元格内容包含字母、符号等非数字字符,仅提取其中的连续数字部分
  • 若单元格本身为纯数字内容则无需处理
  • 最终得到仅含数值的目标列

效果示例

处理前数据表

IDPriceItem Code
13.60a/b 80986
24.3045772
30.60fF/6 9778
49.7848989
53.44\ 545
63.44r. 509

处理后预期结果

IDPriceItem Code
13.6080986
24.3045772
30.609778
49.7848989
53.44545
63.44509

实现代码(Python Pandas环境)

import pandas as pd
import re

# 定义提取连续数字的函数
def extract_continuous_digits(text):
    # 匹配文本中所有连续数字片段,默认取最长的片段适配示例需求,多数字段场景可自行调整取值逻辑
    digit_segments = re.findall(r'\d+', str(text))
    return max(digit_segments, key=len) if digit_segments else None

# 替换为实际需要处理的目标列名,示例中目标列为Item Code
df['Item Code'] = df['Item Code'].apply(extract_continuous_digits)

# 可选步骤:将清洗后的内容转换为数值类型,方便后续计算
df['Item Code'] = pd.to_numeric(df['Item Code'], errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:06:08