1. test 1
  2. test 2
コース一覧
データ分析入門 Python(pandas)
棒グラフ

データ分析入門 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分

棒グラフ

このレッスンでできるようになること。店舗別の売上を棒グラフで描き、棒の高さをコードで読み返せるようになります。

棒グラフは比較のための図です。並んだ棒の長さを目で比べるのは人間が得意なことなので、「どこがいちばん大きいか」を伝えるならまず棒を選びます。逆に、時間の流れを見せたいときは棒より折れ線が向いています。図の種類は好みではなく目的で決めます。

Python

by_store = df.groupby("店舗")["金額"].sum() fig, ax = plt.subplots() ax.bar(by_store.index, by_store.values)

描く前に集計しておくのが基本の流れです。matplotlib は与えられた値をそのまま棒にするだけで、集計はしてくれません。第4章で作った groupby の結果が、そのまま棒グラフの入力になります。集計してから描く、この順番を体に入れてください。

棒グラフには並び順という設計判断があります。groupby の結果は店舗名の昇順なので、店舗名の文字の順に棒が並びます。これは比較には向きません。売上の大きい順に並べ替えると、順位が形として伝わります。

Python

by_store = by_store.sort_values(ascending=False)

ただし、月のように本来の順序があるものを大きさで並べ替えてはいけません。並べ替えてよいのは、順序に意味が無い分類だけです。

描いた棒は ax.patches で取り出せます。patch は棒1本を表す長方形で、get_height() でその高さ、つまり描かれた値が読めます。

Python

heights = [int(p.get_height()) for p in ax.patches]

この読み返しで、集計から描画までの間に取り違えが無かったかを確認できます。棒の順番は描いた順に並ぶので、並べ替えた結果が本当に反映されているかもここで分かります。横軸のラベルは ax.get_xticklabels() から取れますが、まずは高さの読み返しを確実にできるようにしましょう。

要件

  1. groupby で店舗別の売上合計を求める
  2. 売上の大きい順に並べ替えてから描く
  3. ax.bar で棒グラフを描く
  4. heights は ax.patches から get_height() で読み返す
  5. matplotlib.use("Agg") を pyplot の import より前に書く

入出力例

draw_store_bar("売上日,店舗,商品名,カテゴリ,数量,金額 2026-01-05,渋谷店,白磁のマグカップ,食器,2,3600 2026-02-03,渋谷店,鋳物ホーロー鍋,調理器具,1,16800 2026-01-06,横浜店,鉄のフライパン,調理器具,1,7800 2026-01-07,大宮店,積み重ね収納ボックス,収納,3,4500 ") → {"bar_count":3,"heights":[20400,7800,4500],"labels":["渋谷店","横浜店","大宮店"]} draw_store_bar("売上日,店舗,商品名,カテゴリ,数量,金額 2026-03-01,大宮店,白磁のマグカップ,食器,5,9000 2026-03-02,横浜店,布製収納バスケット,収納,2,3000 ") → {"bar_count":2,"heights":[9000,3000],"labels":["大宮店","横浜店"]}

ヒント

sort_values(ascending=False) で降順に並べ替えられます

ax.bar(series.index, series.values) の形で描けます

[int(p.get_height()) for p in ax.patches] で高さが読めます

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

関連レッスン

  • 折れ線グラフ

    時系列の推移を見せられる

  • ヒストグラム

    分布を見せられる

  • 複数系列

    重ねて比較できる

  • ラベルと整え

    伝わる図に仕上げられる

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • グラフノード(頂点)とエッジ(辺)で構成されるデータ構造。
  • 設計何をどう作るかを決める前工程
  • 判断YES/NO 分岐を表す菱形
  • 分類カテゴリを当てる教師ありタスク
main.py
学習モード
エディタを読み込んでいます

メモ

棒グラフ

⌘S で保存