Mac Jupyter notebook メモ
Cmd + ←
で行頭へ移動後
Shift + cmd + →
で行を選択できる
単語ごとの選択は
Option + ←
単語の削除は
Option + backspace
これで
効率的にコードを書ける
[/python]
search_indicate[‘actual’] =search_indicate[‘actual’].str.replace(r”\D”, “”,regex=True)
search_indicate[‘forecast’] =search_indicate[‘forecast’].str.replace(r”\D”, “”,regex=True)
search_indicate[‘previous’] =search_indicate[‘previous’].str.replace(r”\D”, “”,regex=True)
search_indicate
[/python]
これで変換して
date2 =[]
for i in search_indicate['date']:
new_date = datetime.datetime.strptime(i,"%d/%m/%Y").strftime("%Y-%m-%d")
date2.append(new_date)
search_indicate['date']=search_indicate['date'].str.replace('/','-')
search_indicate['date'] = date2
search_indicate.fillna(0)
で日付を修正
あとは
actual =(
alt.Chart(search_indicate)
.mark_line(opacity=0.8,clip=True)
.encode(
x="date:T",
y=alt.Y("actual:Q",stack=None)
)
)
forecast =(
alt.Chart(search_indicate)
.mark_line(opacity=0.8,clip=True,color='red')
.encode(
x="date:T",
y=alt.Y("forecast:Q",stack=None),
)
)
previous =(
alt.Chart(search_indicate)
.mark_line(opacity=0.8,clip=True,color='green')
.encode(
x="date:T",
y=alt.Y("previous:Q",stack=None),
)
)
alt.layer(actual,forecast,previous).resolve_scale(
y = 'independent'
)
で
それぞれのチャートを表示
次に
indicatorの ( 以降を
削除する
まずは
# s = 'abcxyz-xyz('
# print(my_removesuffix(s, '-xyz'))
txt ="ANZ Job Advertisements (MoM)"
print(txt)
として ( 以降を削除
Pythonで文字列の先頭と末尾から空白や文字列を削除する:strip()
を参考にしたが
strip ではできなかった
Replace と正規表現で行う
0回以上の繰り返し
*
任意の英数字は
[a-zA-Z0-9_]
か
\w
txt.replace("(","")
だとできた
エスケープは不要
year_economic_data2['event']=year_economic_data2['event'].replace("\([a-zA-Z0-9_]+\)","",regex=True)
year_economic_data2
とすることで解決
あとは経済指標カレンダーも同様に処理
# dealing_calender['event']= dealing_calender['event'].str.replace('(','\(').str.replace(')','\)')
を
dealing_calender['event']=dealing_calender['event'].replace("\([a-zA-Z0-9_]+\)","",regex=True)
とすることで解決
ただし
search_indicate['actual'] =search_indicate['actual'].str.replace(r"\D", "",regex=True) search_indicate['forecast'] =search_indicate['forecast'].str.replace(r"\D", "",regex=True) search_indicate['previous'] =search_indicate['previous'].str.replace(r"\D", "",regex=True) search_indicate
だと
小数点のものまで書き換えてしまい
マイナス、小数点まで削除してしまう
不等号などはそのままにして
%
英数字のみ
削除すればいけるはず
Python: 正規表現ライブラリを使って、グループ化による置換
を参考に
import re
print(re.sub(r'([A-Z][a-z]?)(\d{1,3})', r"\\Nuc{\1}{\2}{}", "He4"))
# \Nuc{He}{4}{}
print(re.sub(r'([A-Z][a-z]?)(\d{1,3})L', r"\\Nuc{\1}{\2}{\\Lambda}", "He4L"))
# \Nuc{He}{4}{\Lambda}
みたいに
search_indicate['actual'] =search_indicate['actual'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate['forecast'] =search_indicate['forecast'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate['previous'] =search_indicate['previous'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate
とすればできた
とりあえず問題はあるけど
経済指標の取得後の処理はできてきた
次はIMM ポジションの取得
https://www.gaitame.com/market/imm/imm_currency.xls
からダウンロードしたいが
Mac だとそのままだとできないらしい
と思ったが Jupiter notebook からだとファイルを開けないみたい
Finder からだと普通にひらけた
Wgetは Mac にはないけど
Curl で代用できる
を参考に
-O オプションを付けることでファイル取得と保存ができる
!curl "https://www.gaitame.com/market/imm/imm_currency.xls" -O
これで取得はコマンドでできるけど
Excel ファイル読み込みでエラー
No module xlrd
のエラーが出たので
【Python エラー】No module xlrd の対処法。権限がなくてxlrdモジュールをインストールできないとき
を参考に
!pip3 install xlrd
でインストール
あと excel の操作もできるように
!pip3 install openpyxl
で追加
あとは notebook を再起動すると
普通にExcelファイルの取り扱いできた
とりあえず
データ取得関連はほぼできた