このプロジェクトは、PostgreSQLデータベースからデータを取得し、Pythonを使用して分析およびレポート生成を行うサンプルアプリケーションです。matplotlibを使用してグラフを生成し、分析結果をPNGファイルとして保存します。
- PostgreSQLデータベースへの接続
- ユーザーデータの取得と分析
- 日付ごとの新規ユーザー登録数の分析とグラフ化
- メールドメインの分布分析とグラフ化
- 分析結果のCSVエクスポート
- ログ記録
- Python 3.6以上
- PostgreSQLデータベース
- 必要なPythonパッケージ(requirements.txtを参照)
- リポジトリをクローン:
git clone https://github.com/timeless-residents/handson-python-postgresql.git
cd handson-python-postgresql- 必要なパッケージをインストール:
pip install -r requirements.txt- PostgreSQLデータベースを設定:
CREATE DATABASE testdb;
\c testdb
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- テストデータの挿入
INSERT INTO users (name, email, created_at)
VALUES
('山田太郎', 'taro@example.com', CURRENT_TIMESTAMP),
('佐藤花子', 'hanako@example.com', CURRENT_TIMESTAMP),
('鈴木一郎', 'ichiro@example.com', CURRENT_TIMESTAMP);各ユースケースのサンプルスクリプトを実行:
python showroom/usecase-005/main.pyhandson-python-postgresql/
├── data_exports/ # エクスポートされたCSVファイル
├── reports/ # 生成されたグラフ(PNG)
├── showroom/ # サンプルユースケース
│ ├── usecase-000/ # 基本的なデータベース接続
│ ├── usecase-001/ # 基本的なデータ取得
│ ├── usecase-002/ # データ分析の基本
│ ├── usecase-003/ # グラフ生成
│ ├── usecase-004/ # バッチ処理
│ └── usecase-005/ # 完全な分析パイプライン
└── batch_process.log # ログファイル
- データベース接続情報(ホスト、ユーザー名、パスワード)は適宜変更してください
- 実際の環境では、環境変数や設定ファイルを使用してセキュアに認証情報を管理することをお勧めします
matplotlibで生成されるPNGファイル内の日本語テキストが文字化けする問題を修正しました。
修正内容:
# 日本語フォントの設定
import matplotlib as mpl
mpl.rcParams["font.family"] = "sans-serif"
mpl.rcParams["font.sans-serif"] = [
"Hiragino Sans",
"Yu Gothic",
"Meiryo",
"Takao",
"IPAexGothic",
"IPAPGothic",
"VL PGothic",
"Noto Sans CJK JP",
]この設定により、matplotlibは日本語テキストを描画する際に、システムにインストールされている日本語フォントを使用するようになりました。
MIT
プルリクエストやイシューの報告は歓迎します。大きな変更を加える前には、まずイシューを開いて議論してください。