先月からの売上減少を可視化してみる2
前回の記事の続きです。 前回までで、新規ユーザーの総合課金額が減少してることがわかりました。 今回は、この減少が、ユーザー層の変化によるものなのか、単に登録ユーザーによるものなのかを見ていきます。
まずは全体の確認。
all_df.head()
log_date | user_id | install_date | payment | log_month | install_month | new(0)/old(1) | |
---|---|---|---|---|---|---|---|
0 | 2013-06-01 | 116 | 2013-04-17 | 0.0 | 06 | 04 | 1 |
1 | 2013-06-01 | 13491 | 2013-06-01 | 0.0 | 06 | 06 | 0 |
2 | 2013-06-01 | 7006 | 2013-05-03 | 0.0 | 06 | 05 | 1 |
3 | 2013-06-01 | 117 | 2013-04-17 | 0.0 | 06 | 04 | 1 |
4 | 2013-06-01 | 13492 | 2013-06-01 | 0.0 | 06 | 06 | 0 |
ここから6、7月新規のデータだけ取り出します。 ここでは.isin()を使ってますね。色々調べながらやったからこうなったんでしょう。 今なら == で書くと思います。
new_user_df = all_df[all_df['new(0)/old(1)'].isin(['0'])]
同じidでも複数の行で書かれているのでgroupbyでまとめて、reset_indexでデータフレーム に戻します。
drop = ["log_date", "install_date", "log_month", "new(0)/old(1)"] new_user_df2 = new_user_df.drop(drop, axis=1)
grouped = new_user_df2.groupby(["install_month", "user_id"]).sum()
grouped.head()
payment | ||
---|---|---|
install_month | user_id | |
06 | 13491 | 0.0 |
13492 | 0.0 | |
13493 | 0.0 | |
13494 | 0.0 | |
13495 | 0.0 |
new_grouped_df = grouped.reset_index()
可視化
sns.countplot("install_month", data=new_grouped_df)
結果
新規の登録者数が減っていることがわかった。
次の課題
新規の登録者数は減っているが、ユーザー層の変化の可能性が棄却できるわけではないので、それを調べたい。