Pythonで始めるデータ分析の基礎:Pandasを使ったCSVデータの読み込みと可視化

公開日: 2025年8月10日 カテゴリー: Python, データ分析, Pandas, Matplotlib, プログラミング

Pythonデータ分析のイメージ

はじめに:なぜデータ分析が重要なのか?

私たちの周りには、日々膨大なデータが生まれています。ウェブサイトのアクセスログ、ゲームのプレイデータ、SNSの投稿、売上データなど、これらはすべて「データ」です。これらのデータから有益な情報や傾向を読み解くのが「データ分析」です。

データ分析のスキルは、ビジネス、科学、マーケティング、そしてゲーム開発など、あらゆる分野で求められています。この記事では、プログラミング初心者でもPythonを使って簡単にデータ分析を始めるための第一歩として、CSVファイルの読み込みとグラフによる可視化の基礎を解説します。

主にPythonのライブラリである「**Pandas**」と「**Matplotlib**」を使用します。

ステップ1:開発環境の準備と必要なライブラリのインストール

Pythonでデータ分析を行うには、Python本体と、データ分析用のライブラリが必要です。

1. Pythonのインストール

まだPythonがインストールされていない場合は、公式サイトから最新版をダウンロードしてインストールしてください。インストール時に「Add Python to PATH」にチェックを入れると、コマンドプロンプトやターミナルから簡単にPythonを実行できるようになります。

2. Jupyter Notebookの導入(推奨)

データ分析では、コードを書きながら結果をすぐに確認できる「Jupyter Notebook」が非常に便利です。以下のコマンドでインストールできます。

pip install jupyter

インストール後、コマンドプロンプトやターミナルで`jupyter notebook`と入力すると、ブラウザでJupyter Notebookが起動します。

3. PandasとMatplotlibのインストール

データ操作の「Pandas」と、グラフ描画の「Matplotlib」をインストールします。

pip install pandas matplotlib

**ヒント:** Anacondaというディストリビューションをインストールすれば、Python本体と多くのデータ分析用ライブラリ、Jupyter Notebookなどがまとめてインストールされるため、初心者には特におすすめです。

ステップ2:CSVデータの準備とPandasでの読み込み

データ分析の対象となるCSVファイルを用意しましょう。今回は架空の「`sales_data.csv`」というファイルを使います。テキストエディタで以下の内容を記述し、Jupyter Notebookを起動したフォルダと同じ場所に保存してください。

Date,Product,Sales,Region
2025-01-01,A,100,East
2025-01-02,B,150,West
2025-01-03,A,120,East
2025-01-04,C,200,North
2025-01-05,B,130,South
2025-01-06,A,110,East
2025-01-07,C,180,West
2025-01-08,A,90,North
2025-01-09,B,160,South
2025-01-10,C,210,East

PandasでCSVを読み込む

Jupyter Notebookで新しいPythonファイル(.ipynb)を作成し、以下のコードを入力して実行します。

import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('sales_data.csv')

# データの最初の5行を表示して確認
print(df.head())

# データフレームの情報を確認
print("\n--- DataFrame Info ---")
df.info()

# 統計情報を確認
print("\n--- Descriptive Statistics ---")
print(df.describe())

**コードの解説:**

  • `import pandas as pd`: Pandasライブラリを`pd`という略称でインポートします。
  • `pd.read_csv('sales_data.csv')`: `sales_data.csv`ファイルを読み込み、Pandasの「DataFrame」という形式で`df`変数に格納します。DataFrameは表形式のデータを扱うのに非常に便利です。
  • `df.head()`: DataFrameの最初の5行を表示し、データが正しく読み込まれたかを確認します。
  • `df.info()`: DataFrameの列ごとのデータ型、欠損値の有無などを表示します。
  • `df.describe()`: 数値列の平均値、標準偏差、最小値、最大値などの統計情報を表示します。
PandasでCSVを読み込んだ結果のイメージ

ステップ3:データを探索・加工する(Pandasの基本操作)

読み込んだデータから必要な情報を取り出したり、加工したりする方法を見ていきましょう。

# 特定の列だけを表示
print("\n--- 'Sales' column ---")
print(df['Sales'])

# 複数の列を選択
print("\n--- 'Product' and 'Sales' columns ---")
print(df[['Product', 'Sales']])

# 条件に合う行を抽出(例: Salesが150以上のデータ)
print("\n--- Sales >= 150 ---")
print(df[df['Sales'] >= 150])

# 'Product'ごとの合計Salesを計算
print("\n--- Total Sales by Product ---")
total_sales_by_product = df.groupby('Product')['Sales'].sum()
print(total_sales_by_product)

# 'Region'ごとの平均Salesを計算
print("\n--- Average Sales by Region ---")
average_sales_by_region = df.groupby('Region')['Sales'].mean()
print(average_sales_by_region)

**コードの解説:**

  • `df['列名']`: 特定の列(Series)を選択します。
  • `df[['列名1', '列名2']]`: 複数の列をDataFrameとして選択します。
  • `df[df['列名'] 演算子 値]`: 条件を指定して行をフィルタリングします。
  • `df.groupby('列名')['集計対象列'].sum()/mean()`: 指定した列でデータをグループ化し、別の列の合計値や平均値を計算します。

ステップ4:Matplotlibでデータを可視化する

数値の羅列を見るよりも、グラフで可視化することでデータの傾向がはるかに分かりやすくなります。ここではMatplotlibを使って棒グラフと折れ線グラフを作成します。

import matplotlib.pyplot as plt

# 'Product'ごとの合計Salesを棒グラフで可視化
total_sales_by_product = df.groupby('Product')['Sales'].sum()
plt.figure(figsize=(8, 5)) # グラフのサイズを設定
total_sales_by_product.plot(kind='bar', color='skyblue')
plt.title('製品ごとの合計売上') # グラフのタイトル
plt.xlabel('製品') # X軸のラベル
plt.ylabel('合計売上') # Y軸のラベル
plt.xticks(rotation=0) # X軸の目盛りラベルの回転
plt.grid(axis='y', linestyle='--', alpha=0.7) # グリッド線を表示
plt.tight_layout() # レイアウトの調整
plt.show() # グラフを表示

# 時系列データを折れ線グラフで可視化
df['Date'] = pd.to_datetime(df['Date']) # 'Date'列を日付型に変換
df_daily_sales = df.groupby('Date')['Sales'].sum()

plt.figure(figsize=(10, 6))
df_daily_sales.plot(kind='line', marker='o', color='lightcoral')
plt.title('日別合計売上推移')
plt.xlabel('日付')
plt.ylabel('合計売上')
plt.grid(True, linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

**コードの解説:**

  • `import matplotlib.pyplot as plt`: Matplotlibの`pyplot`モジュールを`plt`という略称でインポートします。
  • `plt.figure(figsize=(幅, 高さ))`: グラフの描画エリアのサイズを設定します。
  • `plot(kind='bar')`: 棒グラフを描画します。`kind='line'`で折れ線グラフになります。
  • `plt.title()`, `plt.xlabel()`, `plt.ylabel()`: グラフのタイトルや軸のラベルを設定します。
  • `plt.xticks(rotation=...)`: X軸のラベルの表示方向を調整します。
  • `plt.grid()`: グリッド線を表示します。
  • `plt.tight_layout()`: グラフの要素が重ならないように自動で調整します。
  • `plt.show()`: 作成したグラフを表示します。
  • `pd.to_datetime()`: 日付文字列をPandasが扱える日付型に変換します。時系列データで折れ線グラフを描く際などに重要です。
Matplotlibで作成したグラフのイメージ

まとめ:データ分析の第一歩を踏み出そう!

この記事では、PythonのPandasとMatplotlibを使って、CSVデータの読み込み、基本的な操作、そしてグラフによる可視化を行う方法を学びました。これらはデータ分析の非常に基礎的ながらも強力なツールです。

データ分析は、データをただ見るだけでなく、そこから「なぜこうなっているのか?」「次にどうすれば良いのか?」という洞察を得ることが目的です。ぜひ、身の回りにある様々なデータを分析してみて、新しい発見を楽しんでください。

さらに深く学ぶためには、統計学の知識、NumPyなどの他のライブラリ、より複雑なデータクリーニングや前処理の方法などを学ぶと良いでしょう。あなたのデータ分析の旅が素晴らしいものになることを願っています!