pandasクックブック ―Pythonによるデータ処理のレシピ―

本書をマスターすればpandas中級者!

朝倉書店様 より 「pandasクックブック ―Pythonによるデータ処理のレシピ―」 をご恵贈いただきました。朝倉書店様、ご紹介いただいた Hayao(-ε-δ)さん ありがとうございます。

http://www.asakura.co.jp/goods_img/115751.jpg

以降は「本書」と表記させていただきます。

pandasに関しては共著: PythonユーザのためのJupyter[実践]入門 (以降はJupyter本とします)の第3章でもいつくか解説されていますが、pandasがメインの書籍ではありません。 本書はその名のとおり、pandasに焦点を当てて詳しく解説されているため、Jupyter本でpandasをより知りたくなったかたにはちょうどよい内容ではないでしょうか。

各章の紹介

本書で解説されている内容について、章ごとに紹介します。

Chapter 1 pandas 基礎

pandasのデータ型とその構造について詳しく解説されています。データ型については理解が曖昧だと、意図せぬ演算結果を招いたりするのでこの点が詳解されているのは助かります。これまで get_dtype_counts はあまりつかっていませんでしたが、今後は使っていきたいです。

Capter 2 DataFrameの必須演算

演算子やメソッドを用いた演算方法、欠損値の扱いなどについて解説されています。これまでカラムの順序付けはあまり気にしていませんでしたが、どのように整理していくか参考になりました。

Capter 3 データ分析開始

データ分析でよく使われる上位データの抽出やソートなどが解説されています。メモリ消費を抑えるために、objectをカテゴリデータに変換するなどのこだわりが参考になりました。最後には株価のトレイリングストップを算出する方法が紹介されており、個人的には役に立ちました。

Capter 4 データから部分抽出

インデクサの使い方が解説されています。個人的にはpandasを理解する上で最も重要なところなので、もう少し前にこれを持ってきてもよいのではないかと思いましたが、勝手に変更できないのが翻訳本の辛いところかもしれません。 .ix インデクサが廃止となり、代わりに get_loc メソッドを使う方法なども紹介されています。同様なことは私も Qiitaの記事 に書いていますのでご参考にどうぞ。

Capter 5 booleanインデックス法

ブールインデックスや query , where/mask メソッドについて解説されています。SQL文との比較もあるのでSQLに慣れているかたには朗報ではないでしょうか。個人的には is_monotonic は知らなかったので、参考になりました。

Capter 6 インデックスアラインメント

index オブジェクトについて解説されています。pandasを理解する上ではindexを理解するのが早道です。ビュートコピーについてはこの章で触れています。 style 属性を使ってハイライト表示する方法は一部では知られていますが、書籍で解説されているのははじめて見ました。

Capter 7 集約,フィルタ,変換のためのグループ分け

データのグルーピングについて解説されています。pandasの groupby オブジェクトは便利ですがとっつきにくいところもあるので、詳しく解説されていてありがたいです。ジェネリッククロージャを使ったマニアックな関数を定義していたりするので、pandasをそれなりに使っているかたでも読み応えがあります。

Capter 8 整然形式にデータを再構成

整然データ への変換方法(melting, stacking, unpivoting)について解説されています。 stackmelt などが一般的ですが wide_to_long 関数を使うことでより柔軟な処理を行えるようです。前章同様に複雑な処理が多いですが、さまざまな事例を扱っており、実践的です。

Capter 9 pandasオブジェクトの結合

データ結合について解説されています。よく使われる concat , join , merge のほか、代入や append メソッドの使い方にも触れています。本筋とは外れますが read_html やデータベースへの接続する方法も解説されています。これは独立した章でやってほしかった...

Capter 10 時系列分析

時系列データの扱いについて解説されています。pandasの起源は時系列の金融データを分析することからはじまったと言われており、pandasには時系列データを扱う多彩な機能があります。Pythonの datetime モジュールとの違いやpandas独自のさまざまな機能が紹介されています。

Capter 11 matplotlib, pandas, seabornによる可視化

さいごはデータの可視化について解説されています。pandasの plot メソッドは内部でMatplotlibを呼んでいますが、Matplotlibの概念的な説明から入っています。Jupyter本と同様に2つのインタフェースの違いに触れており、個人的に好感が持てました。pandasの本なのにpandasの plot メソッドについてはボリュームが少なめでした。しかし、データ分析の現場でよく使われるseabornについて解説されており、pandas利用した可視化を広くフォローしている内容でした。

誰のための本か

本書はいわゆるハードルを下げた入門本ではありません。Pythonに慣れたかたなら導入本としても扱えそうですが、なんらかのチュートリアルをこなした後に読むほうが理解しやすいと感じました。 実践的なアプローチで情報も比較的網羅されているため、本書を理解すればpandasを使いこなせていると言ってよいでしょう。 下記のようなpandasをしっかり学びたいかたは本書を手にとってみてはいかがでしょうか。

  • Jupyter本のpandasの章では物足りない

  • pandasをある程度使ったけど、さらに使いこなしたい

  • pandasの理解があやふやなところを明確にしたい

  • しらなかった機能やメソッドなどを知りたい