Advertisement
selik1204

Untitled

Feb 14th, 2021
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. import csv
  2.  
  3. funnel_by_month = {} # создаем словарь, где будут храниться словари за каждый месяц
  4. funnel_template = {'1_home_page':0, '2_search_page':0, '3_payment_page':0, '4_payment_confirmation_page':0, '5_device':0}
  5.  
  6. with open('click_stream2.csv', mode='r') as csv_file: # открываем файл
  7. csv_reader = csv.DictReader(csv_file, fieldnames=['ID','page','date','device']) # читаем файл
  8.  
  9. # проходим циклом по объекту csv_reader
  10. for row in csv_reader: # берем строку из объекта csv_reader
  11.  
  12. page = list(row.items())[1][1] # вытаскиваем название страницы
  13. event_date = list(row.items())[2][1][:-3] # вытаскиваем дату в формате YYYY-MM
  14. device = list(row.items())[-1] # вытаскиваем название девайса
  15. # проверяем существует ли ключ со значением event_date в словаре
  16. if event_date not in funnel_by_month: # если нет
  17. funnel_by_month[event_date] = funnel_template.copy() # создаем ключ, в значение копируем заготовку
  18. if device not in funnel_by_month:
  19. funnel_by_month[device] = funnel_template.copy()
  20.  
  21. # проверяем условиями и прибавляем единицу к нужному ключу в словаре
  22. if page == '1_home_page':
  23. funnel_by_month[event_date]['1_home_page'] += 1
  24. elif page == '2_search_page':
  25. funnel_by_month[event_date]['2_search_page'] += 1
  26. elif page == '3_payment_page':
  27. funnel_by_month[event_date]['3_payment_page'] += 1
  28. elif page == '4_payment_confirmation_page':
  29. funnel_by_month[event_date]['4_payment_confirmation_page'] += 1
  30. elif device == 'Desktop':
  31. funnel_by_month[event_date]['5_device'] += 1
  32.  
  33. funnel_by_month
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement