2016-04-15 33 views
1

我在df中替换文本时遇到问题。我试图使用df.replace()函数,但在我的情况下,它失败了。因此,这里是我的例子:如何更改熊猫数据框中文本的fragmnet

df = pd.DataFrame({'col_a':['A', 'B', 'C'], 'col_b':['_world1_', '-world1_', '*world1_']}) 
df = df.replace(to_replace='world1', value='world2') 

不幸的代码不会改变什么,我还是有world1我DF

有人有什么建议?

回答

0

在这里你去:

df.col_b = df.apply(lambda x: x.col_b.replace('world1','world2'), axis = 1) 

In [13]: df 
Out[13]: 
    col_a  col_b 
0  A _world2_ 
1  B -world2_ 
2  C *world2_ 

可能有更多的选择,但是随着功能replace你指的是,它可以用正则表达式使用以及

In [21]: df.replace('(world1)','world2',regex=True) 
Out[21]: 
    col_a  col_b 
0  A _world2_ 
1  B -world2_ 
2  C *world2_ 
+0

谢谢你的这个建议,它帮助我很多:) –

1

使用矢量化str.replace替换文字中的字符串匹配:

In [245]: 
df = pd.DataFrame({'col_a':['A', 'B', 'C'], 'col_b':['_world1_', '-world1_', '*world1_']}) 
df['col_b'] = df['col_b'].str.replace('world1', 'world2') 
df 

Out[245]: 
    col_a  col_b 
0  A _world2_ 
1  B -world2_ 
2  C *world2_ 
1

您要替换的值不存在。

这一件作品:

import pandas as pd 
df = pd.DataFrame({'col_a':['A', 'B', 'C'], 'col_b':['_world1_', '-world1_', '*world1_']}) 
print df 
df = df.replace(to_replace='*world1_', value='world2') 
print df