Pandas中如何将带label:前缀的标签值修改为仅保留对应后缀字符
实现方案
场景1:标签单独存储为单列字符串(每个样本对应1个标签)
直接用pandas内置字符串替换方法即可,性能最优:
import pandas as pd # 将下方的df替换为你的DataFrame名称,label_col替换为实际的标签列名 df['label_col'] = df['label_col'].str.replace('label:', '', regex=False)
参数说明:regex=False显式指定按普通字符串匹配替换,避免特殊字符被识别为正则规则,运行效率更高。
场景2:标签以列表形式存储在单元格中(每个样本对应多个标签)
用apply遍历每个列表做批量替换:
df['label_col'] = df['label_col'].apply(lambda label_list: [item.replace('label:', '') for item in label_list])
场景3:需要对整个DataFrame所有列的同类标签做批量替换
用全表替换方法,正则匹配前缀避免误替换内容中偶然出现的label:字符:
df = df.replace(to_replace=r'^label:', value='', regex=True)
其中^label:正则规则仅匹配以label:开头的字符串。
效果验证
原始数据示例:
| 序号 | 标签列 |
|---|---|
| 1 | label:A |
| 2 | [label:B, label:C] |
| 3 | label:D |
处理后输出:
| 序号 | 标签列 |
|---|---|
| 1 | A |
| 2 | [B, C] |
| 3 | D |
内容的提问来源于stack exchange,提问作者Tranquil Oshan
相关产品推荐
相关产品推荐

