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

Python正则捕获组如何排除字符?求Jupyter Pandas替代处理方案

价格格式捕获与Pandas数据修正方案

一、正则表达式调整

要把捕获到的"5.400"直接转成"5400",有两种实用方式:

  • 方式1:先捕获完整价格文本,再移除小数点
    保留原正则的捕获逻辑(确保拿到完整的价格字符串):

    "...GO-Results-?T?o?p?-Price-TXT-Regular">(?P<cena>.*?) €</div>'
    

    捕获后对cena字段做字符串替换,去掉小数点就行,比如Python里用match.group('cena').replace('.', '')。

  • 方式2:正则精准匹配数字部分
    把捕获组改成匹配包含小数点的数字格式,后续再移除小数点:

    "...GO-Results-?T?o?p?-Price-TXT-Regular">(?P<cena>\d+\.\d+) €</div>'
    

    这种写法更精准,避免捕获到无关字符,之后同样用replace('.', '')处理即可。

二、Pandas数据处理方案

如果已经把带小数点的价格导入Pandas,且被自动识别成了浮点数(比如5.400变成5.4),按以下步骤修正:

  1. 恢复原始字符串格式
    如果是从文件导入的,导入时指定dtype={'cena': str}防止自动转换;如果已经是浮点数,先转成带三位小数的字符串:

    df['cena'] = df['cena'].apply(lambda x: f"{x:.3f}" if isinstance(x, float) else str(x))
    
  2. 移除小数点并转为整数

    df['cena'] = df['cena'].str.replace('.', '').astype(int)
    

    这样就能得到正确的5400数值。

如果是正则提取后直接存Pandas,建议先处理字符串再转数值:

# 假设正则提取后得到的是带小数点的字符串列
df['cena'] = df['cena'].str.replace('.', '').astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:37:27