u++の備忘録

【書評】『前処理大全』はNot Awesomeな局所解に気付かせてくれる本

前処理大全[データ分析のためのSQL/R/Python実践テクニック]

  • 本橋智光 著,株式会社ホクソエム 監修
  • 定価(本体3,000円+税)
  • 技術評論社

gihyo.jp

どんな本?

データサイエンスの現場で遭遇する様々なトピック(抽出・集約・結合など)を題材に、R・PythonSQLを用いた実装方法を紹介。「Not Awesome」な不適切なコードを理由とともに提示した後、「Awesome」な可読性の高く処理量の少ないコードを掲載している。

所感

実例を通じて、「Not Awesome」なコードを書いてしまっていた自分に気付ける本。

例えばPython/Pandasでの条件付き抽出に関して、インターネットで調べると以下のようなコードが多く出てくる。

Not Awesome

import pandas as pd
df = pd.read_csv("data.csv")

df = df[df["id"]=="hogehoge"]

しかし、このコードは下記の点などでAwesomeとは言えない。

  • dfが入れ子になっていて可読性が低い
  • dfの名前が変わった際には3箇所も変更する必要がある

Awesomeなコードとしては、下記のようなものが提示されている。

Awesome

df.query('id=="hogehoge"', inplace=True)
  • .queryを使うことで、可読性を高めている
  • inplace=Trueを与えることで、dfの回数も1回のみにしている

このような実例を通じて「動いているから良いや」で済ましていた事案を知ることができ、局所解からの脱却を促してくれる本になっている。寝られない時にザッと読み通したが分量は多いので、サラッと読んでおいて辞書的に使うのも良いかもしれない。