web-dev-qa-db-ja.com

パンダ:文字列を別の文字列に置き換える

次のデータフレームがあります

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

responrresponsiveに置き換えたいので、最終的なデータフレームは

    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)
10
chintan s

replace による解決策by dictionary

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' 
8
jezrael

df['prod_type']のすべてのアイテムが同じになる場合のその他の解決策:

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
2
estebanpdl

regex=Trueをここで渡す必要はありません。これは、部分一致を探すためです。正確に一致した後は、paramsを個別の引数として渡すだけです。

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
EdChum