2016-09-20 9 views
4

私はresponresponsiver、最終的なデータフレームを交換したいと思いますパンダは:別の文字列と文字列を置換

prod_type 
0 responsive 
1 responsive 
2 respon 
3 r 
4 respon 
5 r 
6 responsive 

次のデータフレームは、私が試した

prod_type 
0 responsive 
1 responsive 
2 responsive 
3 responsive 
4 responsive 
5 responsive 
6 responsive 

でいます次のように動作しませんでした:

df['prod_type'] = df['prod_type'].replace({'respon' : 'responsvie'}, regex=True) 
df['prod_type'] = df['prod_type'].replace({'r' : 'responsive'}, regex=True) 

答えて

3

ソリューション:

を、これは部分的な一致を探しますようyou''reが正確なだけで別々の引数としてのparamsを渡すと一致した後のようにuが、ここ regex=Trueを渡す必要はありません
df['prod_type'] = df['prod_type'].replace({'respon':'responsive', 'r':'responsive'}) 
print (df) 
    prod_type 
0 responsive 
1 responsive 
2 responsive 
3 responsive 
4 responsive 
5 responsive 
6 responsive 

必要性は、いくつかのstringに列のすべての値を設定した場合:からすべての項目場合

df['prod_type'] = 'responsive' 
+0

ありがとうございます!出来た。 –

+1

@Carlton Gibson - ありがとうございました。 – jezrael

2

dictionaryによってreplace

In [7]: 
df['prod_type'] = df['prod_type'].replace('respon' ,'responsvie') 
df['prod_type'] = df['prod_type'].replace('r', 'responsive') 
df 

Out[7]: 
    prod_type 
0 responsive 
1 responsive 
2 responsvie 
3 responsive 
4 responsvie 
5 responsive 
6 responsive 
2

その他のソリューションは同じになります。

df['prod_type'] = ['responsive' for item in df['prod_type']] 
In[0]: df 
Out[0]: 
prod_type 
0 responsive 
1 responsive 
2 responsive 
3 responsive 
4 responsive 
5 responsive 
6 responsive