如何删除列中的部分字符串值?

How to remove part of string value in column?

我有一个数据框:

  id                 value
4_french:k_15          10
87_john:k_82           82
11_mark:k_10/k_70      10
1_italian:k_11         9

我想重命名具有 john:k_ 的列 id 中的值,给它们新的 id johnmark 如果其 mark:k_ 所以期望的结果必须是:

  id                 value
4_french:k_15          10
john                   82
mark                   10
1_italian:k_11         9

怎么做?

我们可以在这里使用str.replace

df["id"] = df["id"].str.replace(r'^.*(john|mark):k_.*$', r'')

这是一个正则表达式 demo,表明替换逻辑正在运行。

假设您甚至不知道名称可能是什么的通用版本是:

df["id"] = df["id"].str.replace(r'^.*([a-z]+):k_.*$', r'')