如何修改Pandas DataFrame列内字符串并提取指定代码值
实现方法
你可以通过Pandas的str.extract()结合正则表达式快速提取目标内容,正则会匹配-符号前的纯代码字符,自动忽略前后的括号、引号和后续说明内容。
完整实现代码如下:
import pandas as pd # 构造示例数据 data = { 'Model': ['Audi', 'Mercedes', 'Volkswagen'], 'Code': ['["CFA4 - replace filters"]', '["C09 - reboot the engine"]', '["O06 - clean the exhaust pipe"]'] } df = pd.DataFrame(data) # 提取Code列的纯代码部分 df['Code'] = df['Code'].str.extract(r'([A-Za-z0-9]+)\s+-') # 打印结果验证 print(df)
代码说明
- 正则表达式
r'([A-Za-z0-9]+)\s+-'中,([A-Za-z0-9]+)用来匹配由字母、数字组成的代码段,\s+-用来匹配代码段后面跟着的空格和横杠分隔符,只会提取括号内匹配到的代码部分。 - 如果你的代码规则固定为大写字母加数字,也可以把
A-Za-z简化为A-Z,运行效率更高。
运行后输出的结果和你期望的完全一致。
内容的提问来源于stack exchange,提问作者Andalusia
相关产品推荐
相关产品推荐

