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

如何从车辆数据集提取车型名称?正则提取异常求助

解决DataFrame车型名称提取问题

问题分析

你之前用的正则表达式(\w+)只能匹配字母、数字和下划线,覆盖不了车型名里的连字符(-)和空格,而且会在遇到第一个非\w字符时停止匹配,所以没法正确提取WR-V、X1 xDrive20d这类特殊格式的车型名称。

解决方案

用更灵活的正则表达式,精准匹配车型名部分,同时排除后续的配置参数(比如排量、配置代码):

model_name = df['Model'].str.extract(r'^([\w\s-]+?)(?=\s+\d|\s+[A-Z]{2,}|\s+Magna|\s+G|\s*$)').str.strip()

正则说明

  • ^:匹配字符串开头,确保从车型名起始位置提取
  • ([\w\s-]+?):捕获分组,匹配字母、数字、空格、连字符,+?用非贪婪模式,避免把配置内容也匹配进来
  • (?=...):正向预查,遇到以下任意情况就停止匹配:
    • \s+\d:空格后跟着数字(比如排量参数1.2)
    • \s+[A-Z]{2,}:空格后跟着两个及以上大写字母(比如配置代码VX、VDI)
    • \s+Magna:空格后跟着特定配置名称Magna
    • \s+G:空格后跟着单个字母的配置标识(比如Glanza G里的G)
    • \s*$:字符串结尾(保证WR-V、X1 xDrive20d这类无后续配置的完整车型名被全部提取)
  • .str.strip():去掉提取结果两端的多余空格,保证输出整洁

验证结果

针对你的样例数据,提取结果如下:

index车型名称
0Amaze
1Swift
2i10
3Glanza

对于特殊格式的车型名:

  • WR-V → 提取WR-V
  • X1 xDrive20d → 提取X1 xDrive20d
  • S-Presso → 提取S-Presso

完全符合你的期望输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:21:08