在Python中,与str_replace_all()等效的函数是什么?

3

我正在从R转向Python,有一个如下的示例数据框:

df = df = pd.DataFrame({'characterisitics': pd.Series(['Walter White made meth', 'Jessie Pinkman was called meth-head', 'Saul Goodman is always happy']), 'name': pd.Series(['Walter White', 'Jessie Pinkman', 'Saul Goodman'])})

         characteristics                        name
0               Walter White made meth      Walter White
1  Jessie Pinkman was called meth-head     Jessie Pinkman
2         Saul Goodman is always happy       Saul Goodman

我希望能够针对每一行,使用匹配'name'列的'characteristics'的部分进行替换。在R中,我可以使用以下代码:

str_replace_all(string = df$characteristics, pattern = fixed(df$name), replacement = '')

我的输出结果如下:
       characteristics            name
0             made meth    Walter White
1  was called meth-head  Jessie Pinkman
2       is always happy    Saul Goodman

如果我想在Python中实现这个,我应该使用什么语法?

谢谢!

1个回答

3

我认为你需要对每一行应用一个快速的 lambda。对于你的简单示例,实际上不需要使用正则表达式,因此标准的 str.replace() 函数可以正常工作:

df.apply(lambda row: row['characterisitics'].replace(row['name'], ''), axis='columns')
Out[8]: 
0                made meth
1     was called meth-head
2          is always happy
dtype: object

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接