メインコンテンツへスキップ

3 データ分析と可視化

データ分析と可視化のメインビジュアル

第 3 章の目的は 1 つです。乱れたデータを、再現できるコードとグラフに支えられた、信頼できる結論に変えることです。

まずデータ分析ループを見る

データ分析のメインループ

先に図を見てください。役に立つ分析の多くは、この流れです。

読み込む -> 確認する -> 整える -> 集計する -> 可視化する -> 説明する

最初からグラフを描かないでください。まずフィールド、単位、欠損値、重複、サンプルの出所を確認します。

学習順序とタスクリスト

この表を、本章の学習ガイド兼タスクリストとして使います。

ページ手を動かすこと残す証拠
3.1.1 純粋な Python データ処理list と dict で小さな表を処理する純粋な Python で表処理がつらくなる理由のメモ
3.2.1 NumPy 概要 から 3.2.7 乱数と統計配列、shape、スライス、ブロードキャスト、ベクトル化を練習するNumPy 練習ファイル
3.3.1 Pandas の中心構造 から 3.3.8 時系列表を読み、欠損を処理し、groupby、merge、書き出しを行うクリーニング済みデータとログ
3.4.1 Matplotlib から 3.4.4 可視化ベストプラクティス明確な質問に答えるグラフを描く3 つのグラフと、それぞれ 1 つの結論
3.5.1 関係データベース から 3.5.4 データベース設計SQL で実データを絞り込み、集計し、結合するクエリまたは join の例
3.6.1 EDA プロジェクト3.6.3 ハンズオンワークショップ再現可能なデータパイプラインとレポートを作る元データ、整形済みデータ、グラフ、レポート、README

本章でよく使う用語:

用語意味
CSV各行が 1 件のレコードになるプレーンテキスト表
DataFrame行、列、名前、インデックスを持つ Pandas の表
SeriesDataFrame の 1 列
dtype列や配列のデータ型
EDAExploratory Data Analysis:モデリング前の探索的データ分析
groupbyカテゴリで分け、統計量を計算し、結果をまとめる操作
merge / join共通キーで複数の表を結合する操作

最初の実行ループ

まず 2 つのパッケージを入れます。

python -m pip install pandas matplotlib

空の練習フォルダで次のスクリプトを実行します。汚れたデータを作り、整え、集計し、グラフを保存します。

from io import StringIO
import pandas as pd
import matplotlib.pyplot as plt

raw = StringIO("""topic,minutes
Python,45
Pandas,30
Python,45
Visualization,
Pandas,300
""")

df = pd.read_csv(raw)
print("クリーニング前")
print(df)

clean_df = df.drop_duplicates()
clean_df["minutes"] = clean_df["minutes"].fillna(clean_df["minutes"].median())
clean_df = clean_df[clean_df["minutes"] <= 180]

summary = clean_df.groupby("topic")["minutes"].sum().sort_values(ascending=False)
print("\nクリーニング後")
print(summary)

summary.plot(kind="bar", title="Study minutes by topic")
plt.ylabel("minutes")
plt.tight_layout()
plt.savefig("topic_minutes.png")
print("\nグラフを保存しました: topic_minutes.png")

期待される形:

クリーニング前
...
クリーニング後
topic
Python 45.0
Visualization ...
グラフを保存しました: topic_minutes.png

合格ラインは「グラフがきれい」ではありません。どの行を変えたか、なぜ変えたか、結論にどう影響するかを説明できることです。

よくある失敗

症状最初に確認することよくある修正
グラフはきれいだが結論が弱い先に質問を書いたかグラフの前に質問を書く
groupby の結果がおかしい空白、別名、大文字小文字の違いunique() を表示してカテゴリを統一する
欠損値で結論が変わるどの行と列が欠損しているか削除、補完、保持のルールを記録する
相関が完璧すぎる時間、規模、リーク、サンプリング偏りグループ比較を行い、限界を書く
Notebook を再実行できないデータパス、依存関係、実行順再起動して上から下へ実行する

通過チェック

次の 5 つに答えられたら、第 4 章へ進めます。

  • 各列は何を表し、単位は何ですか?
  • どのクリーニングルールがデータを変えましたか?
  • 各グラフは何の質問に答えていますか?
  • どの結論はデータに支えられ、どこはまだ不確かですか?
  • 他の人が README を見て分析を再実行できますか?

印刷用のチェックリストが必要なときは、3.0 学習ガイドとタスクリスト を使ってください。次の章では、このデータ感覚を使って確率、ベクトル、勾配、モデル評価を理解します。