Python pandas读取CSV提取ID字段到新列并从原列删除的方法
pandas提取文本中固定格式ID并拆分列的实现方案
原代码存在的问题
- 导入语句错误:正确导入pandas的写法是
import pandas as pd,原代码拼写错库名、别名设置错误,会直接触发导入报错 - 拆分逻辑错误:直接用
str.split("[")会将文本按左中括号切分为列表,既无法精准匹配[ID-xxxx]的固定ID格式,也无法直接将拆分结果分配到两个目标列。
正确实现代码
使用正则匹配可以精准定位目标ID片段,不会误处理文本中其他位置的中括号内容,逻辑稳定:
import pandas as pd # 读取目标CSV文件 df = pd.read_csv('C:\\Documents\\test.csv') # 提取[ID-xxxx]格式的内容存入ID列 df["ID"] = df["short_description"].str.extract(r'(\[ID-\d+\])') # 删除原列中的ID片段,清理首尾多余空格 df["short_description"] = df["short_description"].str.replace(r'\[ID-\d+\]', '', regex=True).str.strip() # 打印验证结果 print(df)
处理效果
以示例文本lot a kitt program [ID-55321]为例:
- 处理后
short_description列值为:lot a kitt program - 处理后
ID列值为:[ID-55321]
注:如果某行文本不存在符合格式的ID,对应行的ID列会返回空值,不影响其余正常行的处理结果。
内容的提问来源于stack exchange,提问作者Sky
相关产品推荐
相关产品推荐

