Pythonデータ分析入門:pandasとmatplotlibでCSVデータをグラフ化する方法
Pythonを使ったデータ分析の入門記事。pandasでCSVを読み込み、matplotlibでグラフを作成する手順をサンプルコード付きで解説。初心者でも実践できる内容です。
はじめに
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などのライブラリも便利です。