Pandas 徹底解説: Pythonでデータ分析をマスターしよう!
データサイエンス、機械学習、そしてあらゆるデータ処理において、PythonのPandasライブラリは、もはやデファクトスタンダードと言える存在です。表形式のデータを効率的に操作・分析するための強力なツールであり、その使いやすさから多くの開発者やデータアナリストに愛用されています。
この記事では、Pandasの基本的な使い方から、データ分析を効率化するための主要な機能まで、徹底的に解説します。
Pandasってどんなもの?
Pandasは、Pythonでデータ分析を行うためのオープンソースライブラリです。特に、表形式データ(Excelやデータベースのテーブルのようなデータ)を扱うのに特化しており、R言語のデータフレームに近い機能を提供します。
Pandasの核となるのは、以下の二つの主要なデータ構造です。
-
Series(シリーズ): 1次元の配列のようなオブジェクトで、インデックス(ラベル)付きのデータを持つことができます。Excelの1列やデータベースの1カラムに似ています。
-
DataFrame(データフレーム): 2次元の表形式データ構造です。行と列にそれぞれインデックス(ラベル)が付けられ、異なる型のデータを保持できます。Excelのシート全体やデータベースのテーブル全体に似ています。
なぜPandasを選ぶべきか?
数あるデータ処理ツールの中でPandasを選ぶメリットは多岐にわたります。
-
直感的なデータ操作: SQLやExcelに慣れている人には、非常に直感的で理解しやすいAPIが提供されます。
-
高速な処理: 内部的にNumPyをベースにC言語で書かれたコードを使用しているため、大量のデータを高速に処理できます。
-
多様なデータ形式のサポート: CSV、Excel、SQLデータベース、JSONなど、様々な形式のデータを簡単に読み書きできます。
-
欠損値の扱い: 欠損値(NaN)の検出、削除、補完など、データクレンジングに必須の機能が充実しています。
-
データ集計・変換: グループ化、ピボットテーブル、結合、マージなど、複雑なデータ変換や集計も簡単に行えます。
-
統計分析との連携: SciPyやScikit-learnといった他の科学計算ライブラリとの連携もスムーズです。
Pandasを始めるための準備
1. インストール
Pandasはpipで簡単にインストールできます。通常、NumPyも同時にインストールされます。
pip install pandas numpy
Pandasの基本的な使い方
Pandasを使ったデータ分析の基本的な流れは以下の通りです。
-
データの読み込み: CSVファイルやExcelファイルなどからデータを読み込み、DataFrameを作成します。
-
データの確認: データの概要、型、欠損値などを確認します。
-
データの選択・フィルタリング: 特定の列や行、条件に合致するデータを抽出します。
-
データの操作・変換: 列の追加、値の変更、欠損値の処理などを行います。
-
データの集計: グループ化して統計量を計算したり、ピボットテーブルを作成したりします。
最小限のサンプルプログラム
ここでは、CSVファイルからデータを読み込み、簡単な操作を行う例を見ていきましょう。
まずはsample_data.csvというファイルを作成し、以下の内容を記述します。
Name,Age,City,Score
Alice,25,Tokyo,85
Bob,30,Osaka,92
Charlie,22,Tokyo,78
David,35,Nagoya,95
Eve,28,Osaka,88
Frank,40,Tokyo,70
次に、Pythonスクリプト(例: pandas_intro.py)に以下のコードを記述します。
import pandas as pd
# 1. データの読み込み (CSVファイルからDataFrameを作成)
df = pd.read_csv("sample_data.csv")
print("--- データの概要 ---")
print(df.head()) # 最初の5行を表示
print("\n")
# 2. 特定の列の選択
print("--- 'Name'列と'Age'列の選択 ---")
print(df[['Name', 'Age']])
print("\n")
# 3. 条件による行のフィルタリング (例: Ageが30以上のデータ)
print("--- Ageが30以上のデータ ---")
print(df[df['Age'] >= 30])
print("\n")
# 4. 新しい列の追加 (例: Scoreを2倍にした列)
df['DoubleScore'] = df['Score'] * 2
print("--- 'DoubleScore'列を追加 ---")
print(df[['Name', 'Score', 'DoubleScore']])
print("\n")
# 5. データのグループ化と集計 (例: Cityごとの平均Score)
print("--- Cityごとの平均Score ---")
print(df.groupby('City')['Score'].mean())
print("\n")
# 6. データの保存 (CSVファイルとして保存)
df.to_csv("processed_data.csv", index=False) # index=Falseでインデックスを保存しない
print("処理済みデータを 'processed_data.csv' に保存しました。")
このコードを実行すると、データの読み込み、選択、フィルタリング、列の追加、そして集計といった基本的なPandasの操作が実行され、その結果がコンソールに出力され、新しいCSVファイルが生成されます。
Pandasの主要なデータ構造と機能
1. Series (シリーズ)
1次元データ構造で、NumPy配列と似ていますが、各要素にラベル(インデックス)を付けることができます。
import pandas as pd
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
print(s['b']) # インデックスを使ってアクセス
2. DataFrame (データフレーム)
Pandasの中心となる2次元データ構造で、異なる型の列を持つことができます。辞書やリストから作成したり、CSV/Excelファイルから読み込んだりできます。
-
データの読み込み:
pd.read_csv(),pd.read_excel(),pd.read_sql()など -
データの書き出し:
df.to_csv(),df.to_excel(),df.to_sql()など -
データの確認:
df.head(),df.tail(),df.info(),df.describe(),df.shape,df.columns -
列の選択:
df['ColumnName'],df[['Col1', 'Col2']] -
行の選択:
df.loc[](ラベルベース),df.iloc[](位置ベース) -
条件フィルタリング:
df[df['Column'] > value] -
欠損値処理:
df.isnull(),df.dropna(),df.fillna() -
集計:
df.groupby(),df.pivot_table() -
結合・マージ:
pd.merge(),pd.concat()
まとめ
この記事では、Pythonでデータ分析を行うための最も強力なライブラリであるPandasについて、その特徴、インストール方法、主要なデータ構造(SeriesとDataFrame)、そして基本的なデータ操作の例を徹底的に解説しました。
Pandasをマスターすることで、データの読み込みから、加工、集計、分析までを一貫して効率的に行えるようになります。データサイエンスの学習者から実務でデータを扱うプロフェッショナルまで、Pandasはあなたのデータ分析ワークフローに欠かせないツールとなるでしょう。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

