replace と正規表現
1 2 3 4 5 6 | import investpy economic_data = investpy.news.economic_calendar(time_zone = None , time_filter = 'time_only' , countries = [ 'japan' , 'united states' ],importances = None ,categories = None ,from_date = '01/01/2021' , to_date = '11/06/2021' ) ISM = economic_data[economic_data[ 'event' ]. str .contains( 'ISM Non-Manufacturing PMI' )] ISM |
とすると
ISM Non-Manufacturing PMI (Dec)
というように結果に
(月)
という表示が入ってしまう
これを削除するには
replace の正規表現を使う
にあるように
replace で第3引数で
regex=True
を指定することで正規表現で replace が可能になる
正規表現については
分かりやすいpythonの正規表現の例
を参考に
今回は任意の英数字なので
[a-zA-Z0-9_]
そして1回以上の繰り返しなので
+
をつかう
replace で ( を置き換え対象にするには
\(
というようにしないとダメ
1 2 | ISM[ 'event' ] = ISM[ 'event' ].replace( "\([a-zA-Z0-9_]+\)" ,"",regex = True ) ISM |
とすれば
(Dec)
の部分が削除される
+を指定すれば繰り返しの指定ができるので
1 2 | PHS = economic_data[economic_data[ 'event' ]. str .contains( 'Pending Home Sales' )] PHS |
の結果で
Pending Home Sales (MoM) (Dec)
となっていても
1 2 | PHS[ 'event' ] = PHS[ 'event' ].replace( "\([a-zA-Z0-9_]+\)+" ,"",regex = True ) PHS |
とすることで
Pending Home Sales
と変換することができる