Pythonデータ分析入門:pandasとmatplotlibでCSVデータをグラフ化する方法

Pythonを使ったデータ分析の入門記事。pandasでCSVを読み込み、matplotlibでグラフを作成する手順をサンプルコード付きで解説。初心者でも実践できる内容です。

Pythonデータ分析pandasmatplotlibCSVグラフ2026/5/25

はじめに

Pythonはデータ分析の分野で広く使われています。特に、pandasとmatplotlibは必須のライブラリです。本記事では、CSVファイルを読み込み、データを加工し、グラフを作成するまでの流れを実践的に解説します。サンプルコードをコピーしてすぐに試せるので、ぜひご自身の環境で実行してみてください。

必要なライブラリのインストール

まずはpandasとmatplotlibをインストールしましょう。pipコマンドで簡単にインストールできます。

pip install pandas matplotlib

サンプルデータの準備

今回は架空の売上データ(sales.csv)を使用します。以下の内容をコピーして、sales.csvというファイル名で保存してください。

日付,商品,数量,金額
2023-01-01,りんご,10,1000
2023-01-02,みかん,15,1500
2023-01-03,りんご,8,800
2023-01-04,バナナ,20,2000
2023-01-05,みかん,12,1200
2023-01-06,りんご,5,500
2023-01-07,バナナ,25,2500

pandasでCSVを読み込む

pandasのread_csv関数を使うと、CSVファイルを簡単に読み込めます。

import pandas as pd

df = pd.read_csv('sales.csv') print(df)

実行結果:

         日付   商品  数量   金額
0  2023-01-01  りんご  10  1000
1  2023-01-02  みかん  15  1500
2  2023-01-03  りんご   8   800
3  2023-01-04  バナナ  20  2000
4  2023-01-05  みかん  12  1200
5  2023-01-06  りんご   5   500
6  2023-01-07  バナナ  25  2500

データの基本情報を確認する

読み込んだデータの概要を把握するために、info()describe()を使います。

print(df.info())
print(df.describe())

データの集計:商品別の売上合計

pandasのgroupbyを使うと、カテゴリごとに集計できます。

<h1>商品別の数量と金額の合計</h1>
summary = df.groupby('商品')[['数量', '金額']].sum()
print(summary)

結果:

        数量   金額
商品            
バナナ   45  4500
みかん   27  2700
りんご   23  2300

matplotlibで棒グラフを作成

集計結果を棒グラフで可視化します。

import matplotlib.pyplot as plt

<h1>日本語フォントの設定(Macの場合、Windowsの場合は'MS Gothic'など)</h1> plt.rcParams['font.family'] = 'AppleGothic' # Windowsなら 'MS Gothic'

<h1>棒グラフの作成</h1> summary['金額'].plot(kind='bar') plt.title('商品別売上金額') plt.xlabel('商品') plt.ylabel('金額(円)') plt.show()

日付ごとの売上推移を折れ線グラフで表示

日付をインデックスに設定し、折れ線グラフを描画します。

<h1>日付をdatetime型に変換</h1>
df['日付'] = pd.to_datetime(df['日付'])

<h1>日付ごとに金額を集計</h1> daily_sales = df.groupby('日付')['金額'].sum()

<h1>折れ線グラフ</h1> daily_sales.plot(kind='line', marker='o') plt.title('日別売上推移') plt.xlabel('日付') plt.ylabel('売上金額') plt.grid(True) plt.show()

グラフを画像として保存

作成したグラフはsavefigで画像ファイルとして保存できます。

plt.figure()
daily_sales.plot(kind='line')
plt.savefig('daily_sales.png')

まとめ

この記事では、Pythonのpandasとmatplotlibを使って、CSVデータを読み込み、集計し、グラフ化する基本的な流れを解説しました。データ分析の第一歩として、ぜひ実際に手を動かして試してみてください。より高度な分析には、seabornやplotlyなどのライブラリも便利です。

参考リンク

  • pandas公式ドキュメント
  • matplotlib公式ドキュメント