You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改DataFrame id列含nov:k_的字符串值并保留末尾k_xx部分

解决方案

你可以配合正则捕获组使用str.replace()实现需求,仅需一行代码即可完成替换,且不会修改不包含nov:k_的行。

完整示例代码

import pandas as pd

# 构造你的示例DataFrame
df = pd.DataFrame({
    'id': ['4_french:k_15', '87_nov:k_82', '11_nov:k_10', '1_italian:k_11'],
    'value': [10, 82, 10, 9]
})

# 核心替换逻辑
df['id'] = df['id'].str.replace(r'.*nov:(k_\d+)', r'\1', regex=True)

print(df)

输出结果

id  value
0   4_french:k_15     10
1            k_82     82
2            k_10     10
3  1_italian:k_11      9

逻辑说明

正则表达式r'.*nov:(k_\d+)'的含义:

  • .*匹配nov:之前的所有任意字符
  • (k_\d+)是捕获组,匹配k_加后续的数字段
  • 替换值r'\1'表示直接引用第一个捕获组的内容,也就是你需要保留的k_数字部分

如果你的场景中k_后面可能出现数字以外的字符,可以把\d+替换为\w+适配字母、数字、下划线的组合。

内容的提问来源于stack exchange,提问作者french_fries

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:06:03