Skip to content

timeless-residents/handson-python-postgresql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Python-PostgreSQL ハンズオン

概要

このプロジェクトは、PostgreSQLデータベースからデータを取得し、Pythonを使用して分析およびレポート生成を行うサンプルアプリケーションです。matplotlibを使用してグラフを生成し、分析結果をPNGファイルとして保存します。

機能

  • PostgreSQLデータベースへの接続
  • ユーザーデータの取得と分析
  • 日付ごとの新規ユーザー登録数の分析とグラフ化
  • メールドメインの分布分析とグラフ化
  • 分析結果のCSVエクスポート
  • ログ記録

前提条件

  • Python 3.6以上
  • PostgreSQLデータベース
  • 必要なPythonパッケージ(requirements.txtを参照)

インストール方法

  1. リポジトリをクローン:
git clone https://github.com/timeless-residents/handson-python-postgresql.git
cd handson-python-postgresql
  1. 必要なパッケージをインストール:
pip install -r requirements.txt
  1. 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.py

プロジェクト構造

handson-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

貢献

プルリクエストやイシューの報告は歓迎します。大きな変更を加える前には、まずイシューを開いて議論してください。

About

A hands-on project demonstrating Python and PostgreSQL integration for data analysis and visualization

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages