古い記事
ランダムジャンプ
新しい記事
2020年6月15日に公開された、データサイエンス協会による100本ノック。
「データサイエンス100本ノック(構造化データ加工編)」の登場です!

データサイエンティストに俺はなる!!

データサイエンス100本ノック(構造化データ加工編)


「構造化データ加工編」の名の通り、きっちり格納されたデータを対象にいろいろと操作を行う問題集です。テーブルくっつけたり、データ抽出したり、集計したりします。図を描くタスクはありませんし、予測したり、機械学習したりもありません。その前のデータ操作がメインです。今後、可視化編とか機械学習編とか出てくるのかな。期待です。

で、その100本ノックの Python 版に挑戦! 1問ごとに答え合わせしながら進めました。すぐにできなそうなときはネットで検索。わからなかったら答え見てから検索して理解。答え合わせで解法が異なってたらそれも調べて理解。「こういう処理はこれ!」という定石がまだピンと頭に浮かばないことが多いので、結構大変でした。数日かけてなんとか終了。合計で6時間くらいかな。

やる前は、「Python は初心者レベルだけど、データサイエンス的なことは10年以上やってるから、サクサクいけるでしょ」と思っていたのですが、甘すぎました。道具(言語、ライブラリ、フレームワーク)の使い方の理解が浅かった。やはり調べなくても使い方がわかるレベルに達しないとサクサクとはいかないですね。精進します。

気付きメモ


やってみて気づいたことメモ(自分用)。

  • 個人的にあまり使ってなかった query がよく出てくる
    • 毎回 engine='python' を入れ忘れてはまる
  • groupby での agg も個人的にあまり使ってなかったが便利すぎ
  • to_datetime().dt.strftime() の dt
  • concat の横つなぎのときの axis=1
  • やたらと merge をした
    • merge().groupby().agg().reset_index()
  • cut(..., bins=[0,10,...,np.inf]) の np.inf
  • 月単位の演算 dateutil.relativedelta
  • 第三正規化
  • .astype(str) してから .apply する
  • drop_duplicated の subset, keep

環境設定


環境設定手順(PDF)を見ながら作業。
MacBook Pro (13-inch, 2017, MacOS 10.15.5) に導入。
Docker Desktop がインストール済み。

cd ~/tmp/
git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git
cd 100knocks-preprocess
# 最初
docker-compose up -d
# 以降
docker-compose start
docker-compose stop

http://localhost:8888 にアクセスすれば jupyter lab が立ち上がる。