たけのこブログ

凡人が頑張って背伸びするブログ

pandasを使いこなせることの重要性

なぜこんなタイトルにしたのか

生産性の高い人間とは、「ある程度完璧でなくてもいいから、素早く結果を出せる人材」だと個人的に思っています。特に、データ解析においては素早く生データを加工できる技術を持つことは非常に重要だと思っています。どんなに最新の機械学習アルゴリズムを試したくても、データが加工できなければsklearnすらまともに動かせません。

もちろん、ある程度のデータ加工はデータベースから抽出する際にSQLなどで対応することは可能なのですが、細かい部分の加工は他の言語で手軽に実行する場合が多いかなと思います(これも個人的な意見ですが...)。

大学の後輩がpythonでデータ解析を行うときに、「何から勉強したら良いかわからない」と言われたことがあります。難しい機械学習アルゴリズムなんて専門的な知識が身についてからじゃないとまともに書くのは大変ですし、結果が出るのが遅いと先生がイライラし始めます(ここから出来が悪いと誤解して大抵発破をかけ始めるか、愚痴を言い出すかの二択だったりゴホンゴホン。もちろん私の身の回りの研究室ではゴホンゴホン)

なので、とにかく何かしらの結果を出せるスキルは大事です。勝手に相手ができると勘違いしてくれることも多いです笑 データの加工に慣れれば、俯瞰的にデータを見たときに関係性を把握しやすくなってきますし、何より手を動かしてるので、自分はちゃんと研究や仕事がやれてると感じられることもあり、あまり精神的なダメージも少ない(はず)。

なので、まずはpandasを使えるようになりましょう。pandasのplot機能はあまり細かい設定もいらないので、初学者は手軽にグラフにもできるので良いと思います。もちろん、seabornも手軽に使えるので、論文の結果にも使えるような描画を出力できると思います。特に最近はjupyterでかけるので、加工した時の様子を逐一見ながら解析を進められるので、試行錯誤しやすいと思います。

オススメの書籍

ここでは、オススメの書籍(というより、学びたての僕が実践した本やよく使う細かい加工)を紹介したいと思います。

まず、こちらの本でpandasとplot機能の章を学べば、大抵のことはできるかなと思います。plot機能の演習では、ハイチでの災害データを元に解析を行なっているので、実戦もできて良いかなと思います。 www.oreilly.co.jp

そのあとは、自分が利用するデータセットを使っていろんな解析を行うのが良いかなと思います。pandasのウェブサイトはたくさんありますが、個人的によく使用するのは「ダミー変数」と「concatなどの結合」、「複数の条件で抽出する」処理と、プロット機能です。もちろん慣れですが、これらの機能が使いこなせるようになれれば、大体のデータ処理に対応できると思います。

まとめ

参考になったかわかりませんが、みなさんのデータの加工が早くできるようになる参考にでもなれれば良いなと思います笑