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 ポジションの取得
からダウンロードしたいが
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ファイルの取り扱いできた
とりあえず
データ取得関連はほぼできた

コメント