PythonのPandasでできることについて

Python,イメージ

AI実装検定のご案内

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でできることについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次