12311k

Untitled

Mar 11th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. purchases = pd.read_csv('/datasets/game_purchases.csv')
  4. first_purchase_dates = purchases.groupby('player_id')['purchase_datetime'].min()
  5. first_purchase_dates.name = 'first_purchase_datetime'
  6. purchases = purchases.join(first_purchase_dates,on='player_id')
  7. purchases['purchase_month'] = purchases['purchase_datetime'].astype('datetime64[M]')
  8. purchases['first_purchase_month'] = purchases['first_purchase_datetime'].astype('datetime64[M]')
  9. purchases_grouped_by_cohorts = purchases.groupby(['first_purchase_month','purchase_month']).agg({'purchase_id':'nunique','player_id':'nunique'})
  10. purchases_grouped_by_cohorts['purchases_per_player'] = purchases_grouped_by_cohorts['purchase_id']/purchases_grouped_by_cohorts['player_id']
  11. purchases_grouped_by_cohorts = purchases_grouped_by_cohorts.reset_index()
  12. purchases_grouped_by_cohorts['cohort_lifetime'] = purchases_grouped_by_cohorts['purchase_month'] - purchases_grouped_by_cohorts['first_purchase_month']
  13. purchases_grouped_by_cohorts['cohort_lifetime'] = purchases_grouped_by_cohorts['cohort_lifetime'] / np.timedelta64(1,'M')
  14. purchases_grouped_by_cohorts['cohort_lifetime'] = purchases_grouped_by_cohorts['cohort_lifetime'].round().astype('int')
  15. lifetime_pivot = purchases_grouped_by_cohorts.pivot_table(index='first_purchase_month',columns='cohort_lifetime',values='purchases_per_player',aggfunc='sum')
  16. print (lifetime_pivot)
Add Comment
Please, Sign In to add comment