python 中的 str_replace_all() r 等价物

Posted

技术标签:

【中文标题】python 中的 str_replace_all() r 等价物【英文标题】:str_replace_all() r equivalent in python 【发布时间】:2016-06-14 13:50:35 【问题描述】:

我正在从 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

我想使用替换每行匹配“名称”列的“特征”部分。在 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】:

我认为对于这一行,您必须对每一行快速应用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

【讨论】:

以上是关于python 中的 str_replace_all() r 等价物的主要内容,如果未能解决你的问题,请参考以下文章

如何在 r (str_) 中用 alnum 否定任何字母数字字符

如何使用R来提取两个字符之间的上下文,同时仍保留这两个信号?

Python学习篇 Python中的元组

R语言list与Python中的dict

python [解析python中的nginx访问日志]解析python #log中的nginx访问日志

python中的self