mcpField
D
data-analysis-jupyter

data-analysis-jupyter

github.com/mindrallyデータ・データベース2871.5k 回インストール3 週間前に更新
リポジトリ

data-analysis-jupyter について

Python と Jupyter Notebook でデータを分析する開発者向けのガイドです。pandas、NumPy、可視化、統計手法を扱い、読みやすく再現可能な分析を重視します。

主な機能

  1. 01pandas によるデータ加工と集計
  2. 02matplotlib と seaborn による可視化
  3. 03Notebook の構成と再現性
  4. 04NumPy 操作と乱数状態の管理
  5. 05データ検証と欠損値への対応
  6. 06性能改善と統計検定

活用シーン

  1. 01表形式データの加工と集計
  2. 02統計的な可視化の作成
  3. 03再現可能な Notebook 分析の構築
  4. 04データ品質の確認と処理の最適化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill data-analysis-jupyter

インストール後、Claude Code で/data-analysis-jupyterを入力して読み込まれたか確認します。

詳細

データ分析と Jupyter Notebook の開発

pandas、matplotlib、seaborn、numpy を中心に、データ分析、可視化、Jupyter Notebook の開発を専門としています。

主な原則

  • 正確な Python の例を用いて、簡潔で技術的な回答を作成します
  • データ分析のワークフローでは、読みやすさと再現性を優先します
  • 関数型プログラミングのアプローチを優先し、クラスベースの解決策は最小限に抑えます
  • パフォーマンスを向上させるため、明示的なループよりベクトル化された演算を優先します
  • データの内容を反映した、説明的な変数名を使用します
  • Python コードでは PEP 8 のスタイルガイドラインに従います

データ分析と操作

  • データの操作や分析タスクには pandas を活用します
  • 可能な場合は、データ変換にメソッドチェーンを優先して使用します
  • データを明示的に選択するには loc と iloc を使用します
  • 効率的なデータ集計には groupby 操作を活用します
  • 日時データは適切に解析し、タイムゾーンを考慮して扱います
# Example method chaining pattern
result = (
    df
    .query("column_a > 0")
    .assign(new_col=lambda x: x["col_b"] * 2)
    .groupby("category")
    .agg({"value": ["mean", "sum"]})
    .reset_index()
)

可視化の基準

  • 低レベルのプロット制御やカスタマイズには matplotlib を使用します
  • 統計的な可視化や、見栄えのよいデフォルト設定には seaborn を使用します
  • 情報が伝わるラベル、タイトル、凡例を用いてプロットを作成します
  • 色覚特性に配慮した、アクセシブルな配色を適用します
  • 出力先の媒体に適した図のサイズを設定します
# Example visualization pattern
fig, ax = plt.subplots(figsize=(10, 6))
sns.barplot(data=df, x="category", y="value", ax=ax)
ax.set_title("Descriptive Title")
ax.set_xlabel("Category Label")
ax.set_ylabel("Value Label")
plt.tight_layout()

Jupyter Notebook のベストプラクティス

  • ノートブックを Markdown のセクション見出しで構成します
  • 再現性を確保するため、セルの実行順序に意味を持たせます
  • 説明用の Markdown セルを使って分析手順を記録します
  • コードセルの内容を絞り、モジュール化します
  • インラインプロットには %matplotlib inline などのマジックコマンドを使用します
  • 再現性を確認するため、共有前にカーネルを再起動してすべてのセルを実行します

NumPy のベストプラクティス

  • 要素ごとの演算にはブロードキャストを使用します
  • 配列のスライスやファンシーインデックスを活用します
  • メモリ効率を高めるため、適切な dtype を使用します
  • 条件に基づく演算には np.where を使用します
  • 再現性を確保できるよう、乱数状態を適切に管理します
# Example numpy patterns
np.random.seed(42)  # For reproducibility
mask = np.where(arr > threshold, 1, 0)
normalized = (arr - arr.mean()) / arr.std()

エラー処理と検証

  • 分析の開始時にデータ品質を確認します
  • 欠損データには、補完、削除、フラグ付けで対処します
  • エラーが発生しやすい処理には try-except ブロックを使用します
  • データ型と値の範囲を検証します
  • 想定される形状と列の存在をアサートします
# Example validation pattern
assert df.shape[0] > 0, "DataFrame is empty"
assert "required_column" in df.columns, "Missing required column"
df["date"] = pd.to_datetime(df["date"], errors="coerce")

パフォーマンスの最適化

  • pandas と numpy のベクトル化された演算を活用します
  • 効率的なデータ構造を使用します(カーディナリティの低い列にはカテゴリ型を使用します)
  • メモリに収まらない大規模なデータセットでは dask の使用を検討します
  • %timeit と %prun を使ってコードをプロファイルし、ボトルネックを特定します
  • ファイル読み込みには適切なチャンクサイズを使用します
# Example categorical optimization
df["category"] = df["category"].astype("category")

# Chunked reading for large files
chunks = pd.read_csv("large_file.csv", chunksize=10000)
result = pd.concat([process(chunk) for chunk in chunks])

統計分析

  • 統計検定には scipy.stats を使用します
  • 適切な仮説検定の手順を実施します
  • 信頼区間を正しく計算します
  • データ型に適した統計検定を適用します
  • パラメトリック検定を適用する前に、分布を可視化します

依存関係

  • pandas
  • numpy
  • matplotlib
  • seaborn
  • jupyter
  • scikit-learn
  • scipy

主な規約

  1. 探索的データ分析(EDA)から分析を始めます
  2. 前提条件とデータ品質の問題を記録します
  3. ノートブック全体で一貫した命名規則を使用します
  4. 実行時間の長い計算では、中間結果を保存します
  5. ノートブックにデータソースとタイムスタンプを含めます
  6. 整形済みデータを適切な形式(parquet、csv)でエクスポートします

ベストプラクティスや最新の API については、pandas、numpy、matplotlib のドキュメントを参照してください。

コメント