先月からの売上減少を可視化してみる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)

f:id:icchy333:20180212154725p:plain

結果

新規の登録者数が減っていることがわかった。

次の課題

新規の登録者数は減っているが、ユーザー層の変化の可能性が棄却できるわけではないので、それを調べたい。