文系のためのPython独学ロードマップ|データ分析目的なら順序はこう変わる
「データ分析ができるようになりたいので、まずPythonを勉強する」。 この動機で入門書を買った文系の多くが、リストや関数の章のあたりで止まります。 原因は能力ではなく、プログラマー向けの学習順序をデータ分析目的の人がなぞっていることにあります。
この記事では、データ分析だけが目的の場合に順序をどう変えるべきかを、ロードマップの形で示します。 筆者は経済学専攻で、Webマーケティングの実務でアクセス解析データの分析にPythonを使っています。 自分が遠回りした反省も込めた構成です。
プログラマー向けの順序で挫折する理由
一般的なPython入門書は、変数、条件分岐、ループ、関数、クラスと進みます。 ソフトウェアを作る人には正しい順序ですが、データ分析が目的の場合、この順序には2つの問題があります。
1つ目は、分析にたどり着くまでが長すぎることです。 クラスまで学んでもデータの集計は1行もできるようになっておらず、「何のために勉強しているのか」が数週間見えません。
2つ目は、最初の関門が環境構築であることです。 Pythonのインストール、パスの設定、エディタの用意という、分析と無関係でトラブルの多い作業が初日に来ます。 ここでつまずくと、プログラミング自体を諦める理由になります。
データ分析には、この2つを両方回避する順序があります。
ロードマップ(4ステップ)
ステップ1:Google Colabで「動かす体験」から入る(初日)
環境構築をせず、ブラウザだけでPythonが動くGoogle Colabから始めます(始め方は別記事で解説しています)。 初日にやるのは、Colabを開いて、電卓代わりの計算と、リストの平均を出す程度の操作だけです。
目的は「Pythonが動いた」という事実を最短で作ることです。 インストールにつまずいて0日目で終わる、という最悪のパターンをこの選択だけで消せます。
ステップ2:文法は「データ分析で使う分」だけ学ぶ(1〜2週間)
文法の学習は必要ですが、範囲を絞ります。
- 変数、数値と文字列
- リストと辞書(「データの入れ物」として)
- for文(「全行に同じ処理をする」道具として)
- 関数は「使い方」だけ(自作は後回し)
クラス、例外処理、内包表記などは、この段階では学びません。 必要になったときに戻ってくれば足ります。
ステップ3:pandasでExcel的な操作を置き換える(2〜4週間)
ここがこのロードマップの中心です。 pandas(表形式データを扱うライブラリ)で、普段Excelでやっている操作を置き換えていきます。
- CSVファイルを読み込む
- 列を選ぶ、条件で行を絞る
- 合計、平均、グループ別集計(Excelのピボットテーブルに相当)
- 簡単なグラフを描く
「Excelでできることを、わざわざPythonで」と感じるかもしれませんが、この段階の目的は操作の翻訳です。 すでに頭の中にある分析の語彙(集計、絞り込み、クロス集計)をPythonの語彙に対応づけるのが、文系にとって一番速い習得ルートです。 Excelとの対応関係は移行ガイドの記事にまとめています。
ステップ4:自分のデータで小さな分析を1つ完成させる(2〜4週間)
教材のサンプルデータから離れ、自分に関係のあるデータで「読み込み→集計→グラフ→ひとこと考察」までを1本通します。 大学の課題データ、部活やバイトの記録、公開されている統計データ、何でも構いません。
教材を進めるより、この1本の方が力になります。 自分のデータは形式が汚く、その「汚さへの対処」(列名の変更、欠損の処理、型の変換)こそが実務のデータ分析の大半を占めるためです。
統計とPython、どちらを先に学ぶか
データ分析を志す文系からよく出る質問なので、ここで触れておきます。 結論としては、並行が現実解です。
Pythonだけ先に進めると、平均と分散しか出せないのに道具だけ増えていきます。 統計だけ先に進めると、手計算の練習に時間を使いすぎます。 pandasで集計ができるようになった頃(ステップ3)に統計の学習を始めると、「学んだ手法をすぐデータで試す」循環が回り始めます。
統計側の学習順序は統計検定2級 独学ロードマップで解説しています。
つまずいたときの原則
最後に、独学で詰まったときの原則を2つだけ。
- エラーメッセージは最後の行から読む:Pythonのエラーは長く表示されますが、原因の要約は最後の行にあります。全部読もうとして圧倒される必要はありません
- 止まったら「動く最小の形」に戻る:書いたコードが動かないとき、一気に直そうとせず、動いていた状態まで削ってから1行ずつ足し直す方が速く解決します
まとめ
- 文系がPythonで挫折する主因は、プログラマー向けの学習順序と初日の環境構築
- Google Colabで環境構築を回避し、文法は分析に使う分だけに絞り、pandasでExcel操作を置き換える順序が最短
- 仕上げは「自分のデータで1本完成させる」こと。統計の学習はpandasに慣れた頃から並行で始める