10章データの集約とグループ操作

 データをカテゴライズしてグループごとに関数を適用するという作業は、目的が集約であっても変換であっても、データ分析のワークフローの中で最も重要な部分となります。というのも、データを読み込み、マージし準備した後には、グループごとの統計計算を行うことや、(場合によっては)レポーティングや可視化のためにピボットテーブルを使うことが発生するからです。pandasは柔軟なgroupbyインタフェースを持っており、これを利用することで、データセットを自然な方法で小分けして集約することが可能です。

 リレーショナルデータベースとSQL(「構造化問い合わせ言語」(Structured Query Language)の略)が一般的なのは、データの連結やフィルタリング、変換、集約が容易だからです。しかし、SQLのようなクエリ言語では、実現できるグループ操作にある程度制約が生まれてしまいます。それに対して、この後見ていくようにPythonとpandasの表現力を使えば、各グループの紐付くデータを操作するカスタムPython関数として演算を表現できるため、より複雑なグループ操作が行えます。この章では、次に挙げる処理の実現方法を学びます。

  • pandasのオブジェクトを1つあるいは複数のキー(関数や配列、データフレームの列名の形式で指定)を使って分割する方法。
  • グループの要約統計量の計算方法。具体的には、個数のカウント、平均値、標準偏差や、ユーザが定義した関数などの計算方法。
  • グループ内の変換やその他のデータ操作(正規化、線形回帰、順位、部分集合の選択)。
  • ピボットテーブルとクロス集計の計算。
  • 分位点分析やその他のデータから生成されたグループに関する分析。
時系列データの時間に基づく集約は、 ...

Get Pythonによるデータ分析入門 第3版 ―pandas、NumPy、Jupyterを使ったデータ処理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.