<Python, pandas> 文字列の置換
シリーズSeries
での文字列置換str replace
df['column'].str.replace('','')
を使う。
In [52]: df = pd.DataFrame({'a':['HAGE*', 'HAGE*']}) In [53]: df.a Out[53]: 0 HAGE* 1 HAGE* Name: a, dtype: object In [54]: df.a.str.replace('\*','') Out[54]: 0 HAGE 1 HAGE Name: a, dtype: object
マニュアル。
データフレームDataFrame
にも.replace()
があった。
ただ、正規表現regexp
を使うときには、regex=True
のお呪いが必要とのこと。
In [16]: import pandas as pd In [17]: dfa = pd.DataFrame({'a':['HAGE*', 'HAGE*']}) In [18]: dfb = pd.DataFrame({'b':['HAGE*', 'HAGE*']}) In [23]: df = pd.concat([dfa, dfb], axis=1) In [24]: df Out[24]: a b 0 HAGE* HAGE* 1 HAGE* HAGE* In [25]: hasattr(df, 'replace') Out[25]: True In [26]: df.replace('HAGE', 'HAGEeeeee') Out[26]: a b 0 HAGE* HAGE* 1 HAGE* HAGE* In [27]: df.replace('HAGE*', 'HAGEeeeee') Out[27]: a b 0 HAGEeeeee HAGEeeeee 1 HAGEeeeee HAGEeeeee In [28]: import re In [29]: df.replace(r'HAGE', 'HAGEeeeee') Out[29]: a b 0 HAGE* HAGE* 1 HAGE* HAGE* In [30]: df.replace(r'HAGE.', 'HAGEeeeee') Out[30]: a b 0 HAGE* HAGE* 1 HAGE* HAGE* In [31]: df.replace(r'HAGE.', 'HAGEeeeee', regex=True) Out[31]: a b 0 HAGEeeeee HAGEeeeee 1 HAGEeeeee HAGEeeeee In [32]: df.replace(r'HA', 'HE', regex=True) Out[32]: a b 0 HEGE* HEGE* 1 HEGE* HEGE*
追加。
applymap
でもできるじょ。
In [43]: df.applymap(lambda x: re.sub(r'HA', r'HEa', x)) Out[43]: a b 0 HEaGE* HEaGE* 1 HEaGE* HEaGE*