私のデータフレームには次のような列があります:
range
(2,30)
(50,290)
(400,1000)
...
そして、「、」コンマを「-」ダッシュに置き換えます。現在この方法を使用していますが、何も変更されていません。
org_info_exc['range'].replace(',','-',inplace=True)
誰でも助けることができますか?
ベクトル化された 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番目の行で完全に一致し、置換が行われます。
all列で文字列置換を行う方法についてGoogle検索からここに到着した他の人のために(たとえば、OPの 'rangeのような複数の列がある場合'列):Pandasには、データフレームオブジェクトで使用可能な組み込みreplace
メソッドがあります。
df.replace(',', '-', regex=True)
ソース: Docs
列名のすべてのコンマをアンダースコアに置き換えます
data.columns= data.columns.str.replace(' ','_',regex=True)