2016-04-15 5 views
1

dfのテキストを置き換える際に問題があります。私はdf.replace()関数を使用しようとしましたが、私の場合は失敗しました。だからここに私の例です:残念ながら、このコードは何も変更しないpandasデータフレームのテキストのfragmnetを変更するには

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

、私はまだ私のDFにworld1を持って

誰かが何か提案がありますか?

答えて

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

置き換えたい値が存在しません。 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 
関連する問題