Untitled

From Tinct Cassowary, 5 Months ago, written in Plain Text, viewed 76 times.
URL http://codebin.org/view/87587312 Embed
Download Paste or View Raw
  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.     isin_to_filter = orders['user_id'].agg({'user_id': 'nunique'})
  32.     profiles['payer'] =  profiles['user_id'].isin(isin_to_filter)
  33.    # ваш код здесь
  34.  
  35.     return profiles
  36.  
  37. # строим профили по двум наборам данных
  38. profiles = get_profiles(sessions, orders)
  39.  
  40. print(
  41.     profiles.groupby('region')
  42.     .agg(
  43.             {
  44.                 'payer': 'mean'
  45.                }
  46.         )
  47.     .sort_values(by = 'payer', ascending = False)# допишите код
  48. )

Reply to "Untitled"

Here you can reply to the paste above