这行代码的作用是:
对 df['modelCode']
列中的每个值,查找重复的数字+逗号(,
)结构,比如 "123,123"
,并将其替换成单个数字 "123"
。
👇 分析这段代码:
df['modelCode'] = df['modelCode'].apply(
lambda x: re.sub(r'(\d+),\1', r'\1', x)
)
-
re.sub(pattern, replacement, string)
:正则替换函数。 -
r'(\d+),\1'
:匹配格式是 "数字,数字",并且两个数字要完全一样。(\d+)
:匹配一串数字(比如123
),并作为第一个捕获组。,\1
:表示逗号后跟的内容和前面捕获的数字一样。
-
r'\1'
:保留第一个数字,去掉后面的重复部分。
✅ 举例说明:
原始 modelCode | 替换后 modelCode |
---|---|
'123,123' | '123' |
'456,456' | '456' |
'789' | '789' |
'123,456' | '123,456' (不变) |
'abc,abc' | 'abc,abc' (不变,因为非数字) |
❗注意事项:
- 这条正则只处理形如
"123,123"
的重复数字结构; - 不处理非数字重复、多个重复项或不一致重复(比如
'123,456'
); - 如果你希望支持更多复杂场景(如多个重复、非数字等),可以扩展正则或用其他逻辑。