2016-03-01 61 views
2

我从R转换到Python和具有样品数据帧如下:str_replace_all()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来实现这一目标?

谢谢!

回答

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 
+0

感谢那些工作! –