Pythonで本格的にデータ分析を行うなら、Pandasは避けて通れないライブラリです。
マーケティング、経理、Webログ解析、機械学習の前処理など、表形式データを自在に操作・変形・分析するための標準ツールです。
この記事では、Pandasで「何ができるのか?」を豊富なコード例付きで体系的に解説します。
目次
Pandasとは?
- Pythonのデータ処理用ライブラリ
- R言語のDataFrameに似た、表形式のデータ構造を扱うことが可能
- 2つの主要なデータ構造:
Series
:1次元データ(リストのようなもの)DataFrame
:2次元データ(行列=表)
Pandasでできること一覧
データの読み込み(CSV・Excel・SQLなど)
import pandas as pd
df = pd.read_csv("data.csv")
df_excel = pd.read_excel("file.xlsx") # Excelには openpyxl 等のライブラリが必要
- CSV、TSV、JSON、Excel、SQLなどに対応
- ビジネスデータを取り込む最初のステップ
データの確認と要約
df.head() # 最初の5行を表示
df.tail(10) # 最後の10行を表示
df.info() # データ型、欠損の有無など
df.describe() # 平均、分散などの統計情報
- 構造や値の分布、欠損の状況を素早く把握
value_counts()
でカテゴリデータの頻度も確認可能
データの抽出・フィルタリング
df["売上"] # 列の抽出
df.loc[5] # ラベル指定で行抽出
df.iloc[3:6] # 行番号で抽出
df[df["売上"] > 100000] # 条件による抽出
df[(df["売上"] > 100000) & (df["地域"] == "東京")]
- SQLに近い柔軟な条件式が使える
loc
はラベルベース、iloc
はインデックス番号ベースなので用途に注意
データのクリーニング・前処理
df.dropna() # 欠損行の削除
df.fillna(0) # 欠損値を0で埋める
df["日付"] = pd.to_datetime(df["日付"]) # 日付型に変換
df["数量"] = df["数量"].astype(int) # 型の明示変換
- 欠損処理・型変換・整形など、実務で頻出
fillna(method='ffill')
で直前の値で埋めると連続性の保持に有効
列の追加・編集・削除
df["単価"] = df["売上"] / df["数量"] # 計算列の作成
df.drop("不要列", axis=1, inplace=True) # 列の削除
df = df.assign(利益=df["売上"] - df["原価"]) # assignで新列追加(チェーン操作可能)
- 複数の列を使った演算や新しい指標の導出に対応
drop()
はaxis=1
で「列」、axis=0
で「行」を削除
グループ化と集計(groupby
)
df.groupby("店舗")["売上"].sum() # 店舗別の売上合計
df.groupby("商品").agg({"数量": "sum", "売上": "mean"}) # 複数集計
- 集計、平均、中央値などをカテゴリ別に計算
reset_index()
でフラットなDataFrameに戻すと扱いやすい
複数データの結合・連結
pd.concat([df1, df2]) # 行方向に連結
pd.merge(df1, df2, on="ID", how="left") # IDをキーに結合(SQLのJOIN風)
- 複数のデータソースを統合できる
merge()
はleft
,right
,inner
,outer
の結合が選べる
データ構造の変形(ピボット・スタック)
# クロステーブル化(ピボット)
df.pivot_table(index="日付", columns="店舗", values="売上", aggfunc="sum")
# 縦持ち変換
df_melted = pd.melt(df, id_vars=["日付"], var_name="カテゴリ", value_name="数値")
- エクセルのピボットテーブルのような操作ができる
pivot
と違ってpivot_table
は集約関数に対応melt()
で「ワイド」→「ロング」の変換も可能
可視化(簡易プロット)
import matplotlib.pyplot as plt
df["売上"].plot(kind="line")
df["カテゴリ"].value_counts().plot(kind="bar")
plt.show()
- Pandasは
matplotlib
ベースの可視化機能を内蔵 - より美しいグラフを作るには
seaborn
との併用がおすすめ
データの保存(CSV・Excelなど)
df.to_csv("output.csv", index=False, encoding="utf-8-sig")
df.to_excel("output.xlsx", index=False)
- 日本語環境では
utf-8-sig
でエクセル互換を確保 - SQL、JSONなどへのエクスポートも可能
Pandasのスキルアップロードマップ
ステップ | 習得内容 |
---|---|
1. 基本操作 | 読み込み・表示・抽出・集計 |
2. 前処理力 | 欠損処理、型変換、クリーニング |
3. 演算・新列 | 計算列の追加、条件式の応用 |
4. 集計・結合 | groupby、merge、concatの使いこなし |
5. 変形 | pivot, melt, stack/unstack |
6. 可視化 | matplotlib/seaborn連携で分析の見える化 |
7. 機械学習連携 | scikit-learn用の前処理データ整形 |
まとめ
Pandasは、単なるCSV読み込みツールではなく、「データをビジネスインサイトに変える分析エンジン」です。
読み込みから集計、変形、可視化、出力まで一貫して行えるため、ExcelやBIツールでは困難な複雑処理も短時間で実現できます。
Webマーケティングや業務データ分析、AIモデルの準備に至るまで、Python×Pandasを習得することは、今や必須スキルの1つと言っても過言ではありません。
以上、PythonのPandasでできることについてでした。
最後までお読みいただき、ありがとうございました。