web-dev-qa-db-ja.com

Python Pandas:データフレームの列の文字を置き換える方法

私のデータフレームには次のような列があります:

range
(2,30)
(50,290)
(400,1000)
... 

そして、「、」コンマを「-」ダッシュに置き換えます。現在この方法を使用していますが、何も変更されていません。

org_info_exc['range'].replace(',','-',inplace=True)

誰でも助けることができますか?

56
UserYmY

ベクトル化された str メソッドを使用します replace

In [30]:

df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
      range
0    (2-30)
1  (50-290)

編集

それで、あなたが試みたものとなぜそれがうまくいかなかったのかを見ると:

df['range'].replace(',','-',inplace=True)

docs から、次の記述が表示されます。

strまたはregex:str:to_replaceと完全に一致する文字列は値に置き換えられます

したがって、str値が一致しないため、置換は行われません。次と比較してください。

In [43]:

df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0    (2,30)
1         -
Name: range, dtype: object

ここでは、2番目の行で完全に一致し、置換が行われます。

117
EdChum

all列で文字列置換を行う方法についてGoogle検索からここに到着した他の人のために(たとえば、OPの 'rangeのような複数の列がある場合'列):Pandasには、データフレームオブジェクトで使用可能な組み込みreplaceメソッドがあります。

df.replace(',', '-', regex=True)

ソース: Docs

13
kevcisme

列名のすべてのコンマをアンダースコアに置き換えます

data.columns= data.columns.str.replace(' ','_',regex=True)
0
Rameez Ahmad