1. test 1
  2. test 2
コース一覧
データ分析入門 Python(pandas)
つくる:示唆を1枚に

データ分析入門 Python(pandas)

pandasによるデータの読み込み・抽出・前処理、groupbyによる集計、表の結合、matplotlibによる可視化、そして前月比や移動平均を使った分析の実践まで、データ分析の基礎を、毎レッスン実際にコードを書き、多店舗ショップの売上データを分析レポートに仕上げながら学べるコースです。Python入門を修了した方を対象としています。約 14.5 時間 (1 日 30 分 × 29 日) で 57 レッスンを修了でき、修了後は手元のCSVを自力で分析し、グラフと示唆のあるレポートを作れるようになります。

1
データ分析のはじめかた
01. データ分析とは15分
02. pandasとは15分
03. ノートブックの使い方15分
04. CSVを読み込む15分
05. つくる:データと対面する20分
06. 第1章クイズ10分
2
DataFrameのきほん
01. SeriesとDataFrame15分
02. 概観コマンド15分
03. 列を選ぶ15分
04. 行を選ぶ15分
05. 条件で抽出する15分
06. 複数条件15分
07. 並べ替える15分
08. つくる:抽出レポート20分
09. 第2章クイズ10分
3
データの前処理
01. 欠損を見つける15分
02. 欠損を埋める・落とす15分
03. 型を直す15分
04. 重複を消す15分
05. 表記ゆれを整える15分
06. 日付型にする15分
07. つくる:データクレンジング20分
08. 第3章クイズ10分
4
集計とグループ化
01. 集計のきほん15分
02. groupby15分
03. 複数キーで束ねる15分
04. aggで一気に15分
05. ピボットテーブル15分
06. 出現回数15分
07. つくる:月次集計表20分
08. 第4章クイズ10分
5
結合と整形
01. なぜ結合が要るか15分
02. mergeで結合する15分
03. 結合の種類15分
04. 縦に積む15分
05. つくる:統合データセット20分
06. 第5章クイズ10分
6
可視化
01. グラフのきほん15分
02. 棒グラフ15分
03. 折れ線グラフ15分
04. ヒストグラム15分
05. 複数系列15分
06. ラベルと整え15分
07. つくる:ダッシュボード4枚20分
08. 第6章クイズ10分
7
分析の実践
01. 問いの立て方15分
02. 前月比15分
03. 移動平均15分
04. 構成比15分
05. 外れ値を見つける15分
06. つくる:示唆を1枚に20分
07. 第7章クイズ10分
8
総合制作
01. 分析レポート完成20分
02. 提案を書く20分
03. 自由分析20分
04. 見せる形に整える20分
05. 完成と次のステップ20分

つくる:示唆を1枚に

このレッスンでできるようになること。前月比・構成比・外れ値の結果を、数字ではなく言葉の形にまとめられるようになります。新しい文法は出てきません。

第7章でやってきたことを1つにまとめます。ここで作るのは表でもグラフでもなく、文章です。分析の成果物は最終的に言葉になります。誰かが読んで判断できる形にならなければ、どれだけ精緻な計算をしても使われません。

言葉にするときの型を紹介します。事実、解釈、含意の3段です。

事実は数字そのものです。「6月の全店売上は前月比プラス12パーセント」。ここには解釈を混ぜません。解釈は、その数字が何を意味するかです。「3ヶ月連続の増加で、回復基調にある」。含意は、だから何をすべきかです。「増加の中心は渋谷店の食器カテゴリなので、同じ施策を他店に広げる余地がある」。

この3段を混ぜないことが大切です。事実と解釈が混ざった文章は、読み手が検証できません。「売上が好調です」は事実のようでいて解釈です。何と比べて好調なのかが書かれていないからです。逆に数字だけを並べた報告は、読み手に解釈を丸投げしていることになります。

分かったことを3つに絞るのにも意味があります。10個並べると、読み手はどれが重要か分かりません。3つに絞るには、どれを捨てるかを決めなければならず、その判断こそが分析者の付加価値です。選ぶ基準は、行動が変わるかどうかです。知っても何も変わらない事実は、面白くても外します。

Python

findings = [] findings.append(f"全店売上の前月比は {rate} パーセントです")

最後に、書いた文章を自分で疑う手順を入れてください。その数字は並び順を間違えていないか。構成比だけを見て実額を忘れていないか。外れ値を含めたまま平均を語っていないか。この章で学んだ落とし穴は、どれも「気づかないまま間違った結論を出す」形で現れます。計算が通ることと、結論が正しいことは別です。

要件

  1. 売上日を日付型にしてから月を取り出し、昇順に並べる
  2. 前月比は (直近月 - 前月) / 前月 * 100 で求め、小数第1位で丸める
  3. top_store と top_category はそれぞれ groupby の合計から求める
  4. findings は指定された順序と文面で3つ作る
  5. 数値は素の型に直してから文字列に埋め込む

入出力例

summarize_findings("売上日,店舗,商品名,カテゴリ,数量,金額 2026-01-05,渋谷店,白磁のマグカップ,食器,20,100000 2026-01-06,横浜店,積み重ね収納ボックス,収納,10,50000 2026-02-05,渋谷店,白磁のマグカップ,食器,24,120000 2026-02-06,横浜店,積み重ね収納ボックス,収納,12,60000 ") → {"findings":["全店売上の前月比は 20.0 パーセントです","売上が最も大きい店舗は 渋谷店 です","売上が最も大きいカテゴリは 食器 です"],"growth_rate":20,"top_category":"食器","top_store":"渋谷店"} summarize_findings("売上日,店舗,商品名,カテゴリ,数量,金額 2026-05-01,大宮店,鋳物ホーロー鍋,調理器具,5,80000 2026-06-01,大宮店,鋳物ホーロー鍋,調理器具,2,40000 2026-06-02,横浜店,布製収納バスケット,収納,10,20000 ") → {"findings":["全店売上の前月比は -25.0 パーセントです","売上が最も大きい店舗は 大宮店 です","売上が最も大きいカテゴリは 調理器具 です"],"growth_rate":-25,"top_category":"調理器具","top_store":"大宮店"}

ヒント

monthly = df.groupby("月")["金額"].sum().sort_index() が土台です

idxmax() で合計が最大のキーが取れます

f 文字列に float を埋めると 12.0 のように小数点付きで入ります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/10

関連レッスン

  • 第7章クイズ

    章の理解を確認できる

  • 分析レポート完成

    問い→分析→示唆を通せる

  • 外れ値を見つける

    異常な値を検知できる

  • 構成比

    全体に占める割合を出せる

main.py
学習モード
エディタを読み込んでいます

メモ

つくる:示唆を1枚に

⌘S で保存