以前、データ分析でRを使おうとし、Rを勉強してみたがどうもなじめずにいた。
そんなことを思っている内に、Pythonはデータ分析のツールがそろっていることを聞いたので、使ってみることにした。
しかし、ただ単純にAPIとかを覚えても面白くないので、どうしようかと思っていたところ、
ビジネス活用事例で学ぶデータサイエンス入門とい本があるのを思い出し、
この本はRを使って分析しているのだが、これをPythonを使ってみようと思った。
誌面で使用されているデータは、公開されているので、それをダウンロードして使用する。
また、Pythonに関しては、初心者なので、色々と怪しいコードがあるかも。
3章 売り上げ分析
1,2章はデータ分析についての説明をしていて、実際のデータ分析は3章から始まる。
で、3章だが、DAU、DPU、いつインストールしたかのCSVがあり、それらを使用して
売り上げの減少の原因を調べている。
まず、DAU, DPU, インストール情報が記述されている、3つのCSVファイルを読み込む。
CSVファイルを読み込む際、 parse_dates
でカラムを指定し、データをdatetimeとして読み込む。
parse_dates=True
と指定すると全ての列で日付として読み込もうとするらしい。
次に、この3つのデータを結合させる。
まず、DAUとインストール情報のCSVは、app_name
と use_id
のカラムを結合する条件とし、
結合させた。
on
を使って明示的に結合するカラムを指定しているが、指定しない場合、同じカラム名をキーとし、
結合するようだ。今回は明示的に指定してみた。
課金情報については、ログインしても、お金を支払わなかった場合があるため、外部結合を行う。
外部結合を行う際は、how
を使用する。
how
のオプションは
- left
- right
- outer
が存在し、 outer
は left join と right join を適用させた動作になるようだ。
今回は、left
を指定し、左外部結合を行う。
その際、paymentの行に欠損データが発生するので、fillna(0)
を使用し、
欠損データには0を代入するようにした。
ここで、作成したデータの上位5件を user_info[:5]
のコマンドで
表示すると以下の結果になる。
log_date | app_name | user_id | install_date | payment | |
---|---|---|---|---|---|
0 | 2013-06-01 | game-01 | 116 | 2013-04-17 | 0 |
1 | 2013-06-02 | game-01 | 116 | 2013-04-17 | 0 |
2 | 2013-06-03 | game-01 | 116 | 2013-04-17 | 0 |
3 | 2013-06-04 | game-01 | 116 | 2013-04-17 | 0 |
4 | 2013-06-05 | game-01 | 116 | 2013-04-17 | 0 |
とりあえず、今日はここまで。