Skip to the content.

Python 実践スクリプト集 30 本

経営情報・経済学の題材に沿って、Python の文法・標準ライブラリ・数値計算を 段階的に学べる実行可能スクリプト 30 本です。各スクリプトには解説ページがあり、 コード全文と実行結果を掲載しています(外部ネットワーク接続は一切不要)。

すべてのスクリプトは PEP 723 の インラインスクリプトメタデータ(# /// script)を備えており、 uv だけで実行できます。

実行環境

項目 内容
実行方法 uv run <ファイル名>.py — 依存ライブラリは uv が自動導入(事前の pip install 不要)
Python 3.11 以上(match 文、X \| Y 型記法、itertools.pairwise を使用)
外部ライブラリ NumPy / pandas / SciPy / matplotlib(11 本のみ使用、PEP 723 メタデータに宣言済み)
標準ライブラリだけで動く 30 本中 19 本(01–08, 11, 13, 14, 16, 22, 23, 25, 26, 27, 28, 29)
動作確認 uv 0.11.32 / Python 3.12.13 / NumPy 2.5.2 / pandas 3.0.5 / SciPy 1.18.0 / matplotlib 3.11.1 で全 30 本の完走を確認
uv run 01_kpi_match.py                            # 個別に実行
for f in [0-9][0-9]_*.py; do uv run "$f"; done    # 一括実行

出力ファイルを作るスクリプト(11, 26, 28, 30)は、実行ディレクトリ直下に out_11/ のようなフォルダを作成します。

一覧

ファイル名をクリックすると、解説・コード全文・実行結果のページに移動します。

# ファイル テーマ 主な学習項目 依存 難易度
1 01_kpi_match.py 部門別KPI(達成率)の評価 f文字列, 型ヒント, match文(Python 3.10+), enumerate, 内包表記 基礎
2 02_decimal_tax.py 消費税の内税・外税と端数処理 float の誤差, decimal.Decimal, 丸めモード(ROUND_HALF_UP / ROUND_HALF_EVEN) 基礎
3 03_compound_interest.py 複利計算・実効年利・「72の法則」の検証 while ループ, math モジュール, 関数の既定引数, 反復計算と閉形式の比較 基礎
4 04_loan_amortization.py 住宅ローンの元利均等返済スケジュール ジェネレータ関数(yield), 名前付きタプル, 集計, 表の整形 基礎
5 05_npv_irr.py 投資評価(NPV・IRR・回収期間) 高階関数, 二分法とニュートン法, 例外処理, 収束判定 基礎
6 06_cvp_breakeven.py CVP分析(損益分岐点・安全余裕率・営業レバレッジ) dataclass, プロパティ, 逆算(目標利益からの必要数量) 基礎
7 07_market_equilibrium.py 需要・供給の均衡価格と、従価税の帰着(tax incidence) 無名関数(lambda), 高階関数, 二分法, 弾力性の数値微分 基礎
8 08_descriptive_stats.py 平均・分散・分位点・歪度・尖度を自前実装し標準ライブラリと照合 sorted, sum, statistics モジュール, 不偏推定量, アサーション 基礎
9 09_ols_simple.py 最小二乗法(OLS)による広告費と売上の関係の推定 数式の実装, t検定, 決定係数, 残差分析, scipy との照合 sp 中級
10 10_ols_multiple.py 賃金関数の推定(教育年数・経験年数・週労働時間) NumPy の行列演算, 正規方程式, 分散共分散行列, VIF, F検定 np, sp 中級
11 11_csv_aggregate.py 売上CSVの生成・読み込み・集計・書き出し csv モジュール, with 文, collections(defaultdict/Counter), pathlib, datetime, sorted の key 引数 中級
12 12_pandas_pivot.py 売上データのグループ集計・ピボット・時系列リサンプル・移動平均 DataFrame, groupby/agg, pivot_table, resample, rolling, merge, メソッドチェーン np, pd 中級
13 13_gini_lorenz.py ジニ係数・ローレンツ曲線・上位シェア・タイル指数 累積和, 台形公式による数値積分, 複数指標の比較, テキスト描画 中級
14 14_market_concentration.py 市場集中度(HHI・CRk)と合併審査、クールノー競争との関係 辞書操作, ソート, 関数の分割, シミュレーション 中級
15 15_eoq_inventory.py 経済的発注量(EOQ)モデルと安全在庫・発注点 最適化の解析解と数値探索の比較, math, 正規分布のパーセント点 sp 中級
16 16_queue_mm1.py 窓口待ち行列 M/M/1 のシミュレーションと理論値の照合 random モジュール, イベント駆動ループ, 統計量の収集, 理論式との突き合わせ(検証の作法) 中級
17 17_option_montecarlo.py ヨーロピアン・コールの価格をモンテカルロ法とBlack-Scholes式で比較 NumPy のベクトル化, 乱数, 分散減少法(対称変量), 収束の観察 np, sp 中級
18 18_random_walk_var.py 幾何ブラウン運動による株価シミュレーションと VaR / 期待ショートフォール NumPy の累積積, 分位点, ヒストグラムのテキスト描画, リスク指標の定義 np 中級
19 19_bootstrap_test.py ブートストラップ信頼区間と並べ替え検定(A/Bテストの評価) 再標本抽出, ノンパラメトリック推論, p値の意味, 正規近似との比較 np, sp 中級
20 20_markov_chain.py 顧客状態遷移(RFMセグメント)の定常分布・吸収確率・顧客生涯価値 行列の冪乗, 固有値問題, 線形方程式の求解, NumPy の線形代数 np 中級
21 21_linear_programming.py 生産計画の線形計画問題と双対価格(シャドープライス) scipy.optimize.linprog, 制約行列の組み立て, 双対問題の解釈, 感度分析 np, sp 上級
22 22_tsp_heuristic.py 配送ルート最適化(巡回セールスマン問題)を貪欲法+2-opt で解く 総当たりの計算量, 近傍探索, 局所最適とランダム再スタート, itertools.permutations, 計算時間の計測 上級
23 23_oop_bank.py 銀行口座クラス(継承・カプセル化・カスタム例外・単体テスト) class, 継承, @property, カスタム例外, repr, 特殊メソッド, unittest による自動テスト 上級
24 24_portfolio_optimization.py 効率的フロンティア・最小分散ポートフォリオ・シャープレシオ最大化 dataclass, 型ヒント, NumPy 線形代数, scipy.optimize.minimize, 制約付き最適化 np, sp 上級
25 25_decorators.py 実行時間計測・メモ化・リトライ・入力検証をデコレータで実装する 関数はオブジェクト, クロージャ, functools.wraps / lru_cache, 引数付きデコレータ, スタック(積み重ね) 上級
26 26_generators_stream.py 大規模ログをメモリに載せずに集計するストリーム処理 yield, ジェネレータ式, itertools, パイプライン設計, メモリ使用量の比較 上級
27 27_concurrency.py CPU集約タスクとI/O待ちタスクで、スレッドとプロセスの効果を比較 concurrent.futures, GIL, ThreadPoolExecutor vs ProcessPoolExecutor, as_completed, オーバーヘッドの存在 上級
28 28_sqlite_db.py SQLite で売上データベースを構築し SQL で分析する sqlite3, DDL/DML, 外部キー, インデックス, トランザクション, JOIN・GROUP BY・ウィンドウ関数, プレースホルダ(SQLインジェクション対策) 上級
29 29_text_tfidf.py 文書集合から TF-IDF を自前実装し、特徴語抽出と文書類似度を求める re モジュール, collections.Counter, 集合演算, コサイン類似度, 辞書内包表記 上級
30 30_visualization.py 経済時系列の可視化(推移・散布図と回帰直線・分布・ローレンツ曲線) matplotlib のオブジェクト指向API, subplots, 軸の設定, 注釈, PNGファイルへの保存, 日本語フォントが無い環境での対処 plt, np 上級

凡例 — 依存: np=NumPy, pd=pandas, sp=SciPy, plt=matplotlib, —=標準ライブラリのみ

難易度の目安 — 基礎(01–08): 文法・数値・標準ライブラリ / 中級(09–20): 統計・データ処理・シミュレーション / 上級(21–30): 最適化・設計・並行処理・DB・可視化