Python 3 DataFrame字符串处理:提取8-12位数字作为替代编码
提取描述中的替代商品编码方案
直接用正则表达式匹配8-12位的数字串,结合Pandas的字符串方法即可完成提取:
完整代码实现
import pandas as pd df1 = pd.DataFrame({'Item_Code': ['00001234', '00012345', '00123456', '01234567'], 'Desc': ['Widget1 - Obsolete Use Alternative 56789100', 'Obsolete Widget 2 - Use Alternative 56789100 - Blah Blah Blah', 'Alternative Use 9999999910 - Blah Blah Blah', 'Obsolete use 99999999911']}, index=[0, 1, 3, 4]) # 从Desc列提取8-12位的数字作为替代编码 df1['Alternative_Item_Code'] = df1['Desc'].str.extract(r'(\b\d{8,12}\b)') # 查看结果 print(df1)
代码说明
- 正则表达式
\b\d{8,12}\b:\b是单词边界,确保匹配的是独立的数字串,避免误匹配类似Widget1里的单个数字\d{8,12}精准匹配8到12位的数字,符合商品编码的长度要求
str.extract()方法会提取每个Desc字符串中第一个符合条件的数字串,存入新列Alternative_Item_Code
运行结果
Item_Code Desc Alternative_Item_Code 0 00001234 Widget1 - Obsolete Use Alternative 56789100 56789100 1 00012345 Obsolete Widget 2 - Use Alternative 56789100 - ... 56789100 3 00123456 Alternative Use 9999999910 - Blah Blah Blah 9999999910 4 01234567 Obsolete use 99999999911 99999999911
内容的提问来源于stack exchange,提问作者Lee Murray
相关产品推荐
相关产品推荐

