Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. def aggregate_per_customer_over_time_period(df
  2. , end_date = '2018-03-02'
  3. , nr_days_back = 30
  4. , cust_col_name = 'CustomerNumber'
  5. , date_col_name='Date'
  6. , variable_col_name = 'DisputeExists'
  7. , agg_func = np.mean
  8. ):
  9. from datetime import datetime, timedelta
  10. df[date_col_name] = df[date_col_name].astype(str)
  11.  
  12. start_date = str(datetime.strptime(end_date,"%Y-%m-%d")-timedelta(days=nr_days_back))[:10]
  13.  
  14. df = df[(df[date_col_name]<end_date) & (df[date_col_name]>=start_date)]
  15.  
  16. df = df.groupby(cust_col_name).agg(agg_func)[variable_col_name].reset_index()
  17.  
  18. df['AnchorDate'] = end_date
  19.  
  20. return df
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement