2016-04-15 35 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