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

如何用正则表达式拆分Pandas Series,区分颜色与带特殊字符的车辆信息

Pandas DataFrame列拆分:适配含特殊字符的车辆信息

原始DataFrame

import pandas as pd

data = {
    'MyCol': [
        'Red Motor',
        'Blue Taxi',
        'Green Taxi-1',
        'Light blue small Taxi-1',
        'Light blue big Taxi-2'
    ]
}
df = pd.DataFrame(data)

问题分析

原正则表达式用\w+匹配车辆信息,但\w仅支持字母、数字和下划线,无法匹配-这类特殊字符,导致拆分失效。

解决方案

调整正则表达式,让车辆部分支持任意特殊字符,同时保留对small/big修饰词的匹配:

# 拆分颜色和车辆列
df[['颜色', '车辆']] = df['MyCol'].str.extract(r'^(.*)\s((?:small|big)?\s?.+)$')

# 可选:清理列内容首尾空格,让结果更整洁
df['颜色'] = df['颜色'].str.strip()
df['车辆'] = df['车辆'].str.strip()

最终结果

执行后DataFrame内容:

MyCol颜色车辆
Red MotorRedMotor
Blue TaxiBlueTaxi
Green Taxi-1GreenTaxi-1
Light blue small Taxi-1Light bluesmall Taxi-1
Light blue big Taxi-2Light bluebig Taxi-2

正则规则说明

  • ^(.*)\s:匹配从字符串开头到最后一个空格的所有内容,作为颜色列
  • ((?:small|big)?\s?.+)$:匹配最后一个空格后的所有内容(车辆信息):
    • (?:small|big)?:可选匹配small或big修饰词
    • \s?:匹配修饰词与车辆名之间的可选空格
    • .+:匹配任意非换行字符(包含特殊符号)直到字符串结尾

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:01:27