Vitaliy_Novichikhin

Бизнес Процессы А/Б 2.4.1 2/2

Jul 18th, 2022 (edited)
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.34 KB | None | 0 0
  1. import pandas as pd
  2.  
  3. sessions = pd.read_csv('sessions.csv')
  4. sessions['session_start'] = pd.to_datetime(sessions['session_start'])
  5.  
  6. orders = pd.read_csv('book_orders.csv')
  7. orders['event_dt'] = pd.to_datetime(orders['event_dt'])
  8.  
  9. # добавили второй аргумент
  10. def get_profiles(sessions, orders):
  11.  
  12.     profiles = (
  13.         sessions.sort_values(by=['user_id', 'session_start'])
  14.         .groupby('user_id')
  15.         .agg(
  16.             {
  17.                 'session_start': 'first',
  18.                 'channel': 'first',
  19.                 'device': 'first',
  20.                 'region': 'first',
  21.             }
  22.         )
  23.         .rename(columns={'session_start': 'first_ts'})
  24.         .reset_index()
  25.     )
  26.  
  27.     profiles['dt'] = profiles['first_ts'].dt.date
  28.     profiles['month'] = profiles['first_ts'].astype('datetime64[M]')
  29.    
  30.     # проверьте, есть ли ID пользователей из profiles в orders
  31.     profiles['payer'] = profiles['user_id'].isin(profiles['user_id'].unique())
  32.     # ваш код здесь
  33.  
  34.     return profiles
  35.  
  36. # строим профили по двум наборам данных
  37. profiles = get_profiles(sessions, orders)
  38.  
  39. print(
  40.     profiles.groupby('region').agg({'payer':'mean'}).sort_values(by='payer',ascending=False))
  41.     # допишите код
  42.     # допишите код
  43.  
Add Comment
Please, Sign In to add comment