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来提取两个字符之间的上下文,同时仍保留这两个信号?