2016-08-24 10 views
3

私の質問は、私がデータフレームに含まれた文字列を置き換えるためにreを使用する方法であるパンダ:、また正規表現は

p = re.compile('New') 
p.sub('old', df['Col1']) 

私はre.sub()を使用する場合、それは私にエラーを与えます私は、forループを使用してみましたが、入れては予想外だったし、他のすべての行の最初の行の値を表示する:

for i in df['Col1']: 
    p.sub('old', i) 
    print(i) 

私は何かが欠けてることを確信しています。 regexでも動作します

答えて

2

私はあなたがstr.replaceを使用することができると思い、:

df = pd.DataFrame({'Col1':['sss old','dd','old']}) 
print (df) 
     Col1 
0 sss old 
1  dd 
2  old 

df.Col1 = df.Col1.str.replace('old','new') 
print (df) 
     Col1 
0 sss new 
1  dd 
2  new 
+0

を使用すると、コードの作品を​​@jezraelありがとうございました。 –

+0

もう1つ質問:str.startswithでreを使いたいとき。それはすべての値false.i.eを返します:df.col1.str.startswith( '(N | n)ew')、何か不足していますか? –

+0

[str.startswith](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.startswith.html)は正規表現で動作しません。 – jezrael