【Pandas入門 第1回】データ分析はここから!SeriesとDataFrameの基本、CSV/Excelファイルの簡単読み書き 🐼

「PythonでCSVやExcelのデータを扱いたいけど、どうすればいいの?」
「データ分析って、まず何から手をつければいいんだろう?」
「NumPyは配列の計算が得意なのは分かったけど、行や列に名前が付いた、もっとExcelみたいなデータはないの?」

こんにちは! Python探検隊、隊長のPythonistaです! これまでNumPyMatplotlibといったライブラリで、数値計算やデータ可視化の基礎を学んできましたね。いよいよ今回は、Pythonでのデータ分析において絶対的な主役となるライブラリ、Pandas (パンダス) の世界へ足を踏み入れます!

もしNumPyが「高性能な数値計算エンジン」だとしたら、Pandasは「データという荷物を自在に操るための、ラベル付きの多機能コンテナトラック」のようなものです。行や列に名前(ラベル)を付けて、欠損値のある不揃いなデータも賢く扱い、統計的な分析や加工を直感的に行えるように設計されています。

記念すべきPandas入門シリーズ第1回の今回は、Pandasの心臓部である2つのデータ構造SeriesDataFrameの基本を理解し、データ分析の最初の、そして最も重要なステップであるCSVファイルやExcelファイルの簡単な読み書きをマスターします。この記事を読めば、あなたはどんな表形式データも恐れることなくPythonの世界に招き入れることができるようになります!


1. Pandasとは? なぜデータ分析に必須なのか?

Pandasは、Pythonで構造化データ(表形式のデータなど)を効率的に操作・分析するための、非常に強力で人気のあるライブラリです。データサイエンティストや分析者の多くが、日々の業務でPandasを愛用しています。

Pandasの主なメリット:

  • 高機能なデータ構造: 行と列にラベルを持つ2次元の表形式データを扱うためのDataFrameと、1次元のラベル付きデータを扱うSeriesが非常に強力です。
  • 簡単なデータ入出力: CSV, Excel, JSON, SQLデータベースなど、多種多様なフォーマットのデータを簡単なコマンドで読み書きできます。
  • 柔軟なデータ操作: データの選択、フィルタリング、並び替え、追加、削除といった操作が直感的に行えます。
  • 欠損値の扱い: データ分析で必ず遭遇する欠損値(NaN)を、簡単に検出したり、補完したり、削除したりする機能が充実しています。
  • 強力な集計・分析機能: グループごとの集計(`groupby`)、統計量の計算、時系列データの操作など、高度な分析機能が揃っています。
  • NumPyベースのパフォーマンス: 内部の多くの処理はNumPyを基盤としているため、高速に動作します。

要するに、Pythonでデータ分析を行うなら、Pandasは避けては通れない、最高のパートナーなのです。


2. インストールと準備:Pandasの世界へようこそ

Pandasも外部ライブラリなので、利用する前にインストールが必要です。

2.1. インストール

ターミナルやコマンドプロンプトを開き、pipを使って以下のコマンドを実行してください。

pip install pandas

また、Excelファイル(.xlsx)を扱う機能をフルで利用するには、openpyxlというライブラリも一緒にインストールしておくのがおすすめです。

pip install openpyxl

2.2. インポートのお作法

PythonスクリプトでPandasを使う際は、慣習的にpdという別名を付けてインポートします。

import pandas as pd
import numpy as np # PandasはNumPyと連携することが多いので、一緒にインポートするのが一般的

これでPandasを使う準備が整いました!


3. Pandasの主役!2つのデータ構造 `Series` と `DataFrame`

Pandasを理解する鍵は、その中心的な2つのデータ構造を理解することです。

3.1. Series:ラベル付きの1次元データ

Series (シリーズ) は、1次元の配列のようなデータ構造ですが、各要素にインデックス (index) と呼ばれるラベルが付いているのが特徴です。Excelシートの「1つの列」をイメージすると分かりやすいでしょう。

import pandas as pd

# PythonのリストからSeriesを作成
data_list = [100, 150, 120, 200]
index_labels = ['リンゴ', 'ミカン', 'バナナ', 'ブドウ']

s = pd.Series(data_list, index=index_labels)
print("--- Pandas Series ---")
print(s)

実行結果:

--- Pandas Series ---
リンゴ    100
ミカン    150
バナナ    120
ブドウ    200
dtype: int64

左側のリンゴ, ミカン...がインデックス、右側がデータです。インデックスを指定しない場合は、NumPyと同様に0から始まる整数のインデックスが自動で振られます。

3.2. DataFrame:ラベル付きの2次元データ(表)

DataFrame (データフレーム) は、Pandasの最も重要なデータ構造で、行と列の両方にラベルを持つ2次元の表形式データです。まさに、Excelのシートやデータベースのテーブルそのものをイメージしてください。

DataFrameは、複数のSeriesを束ねたものと考えることもできます(各列が1つのSeriesに相当します)。

import pandas as pd

# Pythonの辞書からDataFrameを作成するのが一般的
data_dict = {
    '商品名': ['リンゴ', 'ミカン', 'バナナ'],
    '価格': [100, 150, 120],
    '産地': ['青森', '愛媛', 'フィリピン']
}

df = pd.DataFrame(data_dict)
print("\n--- Pandas DataFrame ---")
print(df)

実行結果:

--- Pandas DataFrame ---
    商品名   価格     産地
0   リンゴ  100     青森
1   ミカン  150     愛媛
2   バナナ  120  フィリピン

商品名, 価格, 産地が列のラベル(カラム)、左端の0, 1, 2が行のラベル(インデックス)です。


4. データを手に入れる!CSV/Excelファイルの読み書き

データ分析の最初のステップは、外部にあるデータをプログラムに読み込むことです。Pandasはこれが非常に得意です。

4.1. サンプルCSVファイルの準備

練習用に、以下の内容のテキストファイルを作成し、sample_data.csvという名前でPythonスクリプトと同じ場所に保存してください。

ID,Name,Age,City
1,Alice,25,New York
2,Bob,30,London
3,Charlie,22,Paris
4,David,35,Tokyo

4.2. CSVファイルの読み込み (pd.read_csv())

Pandasで最もよく使われる関数の一つがpd.read_csv()です。たった1行でCSVファイルをDataFrameとして読み込めます。

import pandas as pd

file_path = 'sample_data.csv'
try:
    df_from_csv = pd.read_csv(file_path)
    print("\n--- CSVから読み込んだDataFrame ---")
    
    # .head()メソッドで最初の5行を表示 (データが大きい場合に便利)
    print(df_from_csv.head())
    
except FileNotFoundError:
    print(f"エラー: ファイル '{file_path}' が見つかりません。")

実行結果:

--- CSVから読み込んだDataFrame ---
   ID     Name  Age       City
0   1    Alice   25   New York
1   2      Bob   30     London
2   3  Charlie   22      Paris
3   4    David   35      Tokyo

4.3. Excelファイルの読み込み (pd.read_excel())

Excelファイルの読み込みも同様に簡単です。pd.read_excel()を使います。(openpyxlライブラリが必要です)

# df_from_excel = pd.read_excel('sample_data.xlsx', sheet_name='Sheet1')
# print(df_from_excel.head())
print("Excelファイルも pd.read_excel('ファイル名') で簡単に読み込めます。")

4.4. ファイルへの書き出し (.to_csv(), .to_excel())

処理したDataFrameをファイルに保存するのも簡単です。DataFrameオブジェクトのメソッドを使います。

# df_from_csv が上記で読み込まれている前提

# 新しい列を追加してみる
df_from_csv['Country'] = ['USA', 'UK', 'France', 'Japan']

# CSVファイルとして書き出し
output_csv_path = 'output_data.csv'
df_from_csv.to_csv(output_csv_path, index=False, encoding='utf-8-sig')
# index=False は、DataFrameのインデックス(0,1,2...)をファイルに書き出さないための重要オプション
# encoding='utf-8-sig' はExcelで日本語が文字化けするのを防ぐためのおまじない
print(f"\n'{output_csv_path}' にデータを保存しました。")

# Excelファイルとして書き出し
output_excel_path = 'output_data.xlsx'
df_from_csv.to_excel(output_excel_path, index=False)
print(f"'{output_excel_path}' にデータを保存しました。")

5. 読み込んだデータを探索する:基本の4メソッド

データをDataFrameに読み込んだら、まずそのデータがどのようなものか概要を把握することが重要です。以下の4つのメソッドは必ず覚えておきましょう。

import pandas as pd
df = pd.read_csv('sample_data.csv')

# 1. .head(n): 最初のn行を表示 (デフォルトは5行)
print("\n--- .head() ---")
print(df.head(3))

# 2. .shape: DataFrameの形状(行数, 列数)をタプルで返す
print("\n--- .shape ---")
print(df.shape) # (4, 4)

# 3. .info(): 各列のデータ型や非null値の数など、DataFrameの要約情報を表示
print("\n--- .info() ---")
df.info()

# 4. .describe(): 数値列の基本的な統計量(個数, 平均, 標準偏差, 最小値, 四分位数, 最大値)を表示
print("\n--- .describe() ---")
print(df.describe())


特に.info().describe()は、データ分析の初期段階でデータの全体像を把握するために頻繁に使われます。


まとめ:Pandasでデータ分析の世界の扉を開こう!

今回は、Pandas入門シリーズの第1回として、Pythonでデータ分析を行うための最も基本的な知識を学びました。

  • Pandasが表形式データを扱うための強力なライブラリであること。
  • 中心的なデータ構造であるSeries(1次元)DataFrame(2次元)の概要。
  • 最も重要な操作の一つである、CSV/Excelファイルの読み込み (pd.read_csv) と書き出し (.to_csv)
  • 読み込んだデータの概要を把握するための基本メソッド (.head(), .shape, .info(), .describe())。

これで、あなたは様々な形式の表データをPythonの世界に持ち込み、その基本的な特徴を調べることができるようになりました。これは、データ分析における非常に大きな一歩です!

しかし、データをただ眺めるだけでは分析は始まりません。次回、第2回では、このDataFrameの中から「特定の行や列だけを選び出す」「特定の条件に合うデータだけをフィルタリングする」といった、データを自在に操るための強力な選択・抽出テクニック、loc, iloc, そしてブールインデックス参照について詳しく解説していきます。データ操作の真の面白さはここからです。お楽しみに!

その他の投稿はこちら

コメント

このブログの人気の投稿

タイトルまとめ

これで迷わない!WindowsでPython環境構築する一番やさしい方法 #0

【Python標準ライブラリ完結!】11の冒険をありがとう!君のPython力が飛躍する「次の一歩」とは? 🚀