Python:よく使うコードまとめ

Posted on October 22nd, 2021Updated on November 13th, 2021
Python:よく使うコードまとめ

どんな記事

Pythonで今後も絶対使うだろうな、でも忘れちゃうだろうな、というコードの備忘録です。自分のためのまとめ。

Pandas

df.apply()の中で変数を使う

「1行前の値」を変数に格納しながら処理する等。rowは処理中の行、row.nameはその行のindex。

import pandas as pd

def b4_day_close( df ) :
  b4_date, b4_close, day_close = None, None, None
  def apply_logic( row ):
    nonlocal b4_date, b4_close, day_close
    today, hour = row.name, row.name.hour
    diff_seconds = ( today - b4_date ).seconds if b4_date else None
    if diff_seconds and diff_seconds > 60 and hour == 16 :
      day_close = b4_close
    b4_date, b4_close = today, row["c"]
    return day_close
  return apply_logic

df['b4_day_c'] = df.apply( b4_day_close( df ), axis=1 )

df.apply()で複数列を返す

import pandas as pd

dt={ "x": [ 1100, 1200, 1300 ],
     "y": [ 2100, 2200, 2300 ], }
df = pd.DataFrame(dt)

def fnc( df ) :
    return df["x"]+1,df["x"]+2

df[["a","b"]] = df.apply( fnc( df ), axis=1, result_type='expand' )

ちょっとしたバックテストならDataFrameの枠組みで解決できる。

df.plot()

日時のフォーマット

2つのDFを横方向に結合する

import pandas as pd

df_l = _get_df( "N225f", year )
df_r = _get_df( "Topixf", year )
df = df_l.join( df_r, lsuffix="_n", rsuffix="_t" )

Datetime

日付と時刻の列からDatetimeを作成する

import pandas as pd
import datetime as dt

def _get_df( symbol, year ) :
  df = pd.read_excel( f'{BASEDIR}/{symbol}_{year}.xlsx',
                     names=("date","time","open","high","low","close","volume"),
                     sheet_name='1min' )
  df["time"] = df["time"].astype( str )
  df["Datetime"] = pd.to_datetime( df["date"].dt.strftime("%x ") + df["time"] )
  # Datetime:取引日(営業日) → カレンダーの調整
  df.loc[ df["time"]>="16:30:00", "Datetime" ] = df.loc[ df["time"]>="16:30:00", "Datetime" ] + dt.timedelta( days=-1 )
  df = df.set_index("Datetime")

Datetimeの加算・減算

import datetime as dt
sample_datetime + dt.timedelta( days=-1 )

Datetimeの差分を求める

import pandas as pd
diff_seconds = ( this_datetime - b4_datetime ).seconds

よく使うPython関連の記事

Python:EDINET企業データの自動取得・スクリーニングを5分ではじめる

EDINETという金融庁が運用している企業情報の開示システム(無料でつかえる企業データ)から、「PER、ROE、配当」などのデータを取得してスクリーニングをする方法。1.無料で取得できるデータ 2.Google Colab をつかえば5分で導入・実行できる 3.全上場銘柄のデータを取得する

programming/google-colab-edinet-screening

Python:EDINET企業データの自動取得・スクリーニングを5分ではじめる

Python:投資の「期待値」と 単利・複利の「損益分岐点」を算出、グラフ化

この記事では、以下の手順とコードを紹介しています。 1.投資の「期待値」の算出 2.投資の「単利・複利の『損益分岐点』」の算出 3.算出結果をもとにグラフを描画

programming/google-colab-calculate-trading-edge

Python:投資の「期待値」と 単利・複利の「損益分岐点」を算出、グラフ化

Python:TA-Libでテクニカル分析、Plotlyでローソク足の描画

Python でテクニカル分析ができるライブラリ「TA-Lib」を、Google Colab で使用する方法の備忘録。pandas_datareader で価格データを取得、TA-Lib でテクニカル分析をして、Plotly でローソク足のチャートを出力する手順。

programming/google-colab-install-ta-lib

Python:TA-Libでテクニカル分析、Plotlyでローソク足の描画

Python:「破産の確率」の計算とグラフ化(コピペするだけ!)

Google Colab および Python で「『破産の確率』を算出する方法」「破産確率表の作成」「破産確率表のグラフ化」「破産の確率の計算式とコードの解説」などを備忘録としてメモ。コードを公開しているので、Google Colab にコピペして実行すれば1分で計算することができます。

programming/google-colab-calc-ruin-probability

Python:「破産の確率」の計算とグラフ化(コピペするだけ!)

Python:Plotlyでアニメーショングラフを作成する

この記事では、以下の手順とコードをご紹介しています。 1.3DのSurfaceグラフのアニメーション 2.Contour(等高線)グラフのアニメーション

programming/google-colab-plotly-animation-graph-surface-contour

Python:Plotlyでアニメーショングラフを作成する

開発を承っています

  • Pineスクリプト(インジケーターやストラテジー)
  • Google Apps Script
  • Python
  • MQL4

などの開発を承っています。とくに投資関連が得意です。過去の事例は「実績ページ(不定期更新)」でご確認ください。ご相談は「お問い合わせ」からお願いします。

同じタグの記事
yuya takahashi

タカハシ / 9年目の兼業トレーダー

投資やプログラミング、動画コンテンツの撮影・制作・編集などが得意。元・日本料理の板前。更新のお知らせは、FacebookやLINE、Pinterest、Twitter、メールで行っています。LINEではご質問にもお答えしています。 このブログと筆者について

  • 記事をシェア

応援いただけますと励みになります!

ログイン不要、100円からのサポート

タカハシを応援する
© Investment Tech Hack 2021.