@KeitLis

Как проводить анализ CSV файла без библиотек Python3?

Всем доброго времени суток, такой вопрос - нужно проанализировать CSV файл в Paython 3 без использования библиотек, в файле есть 5 столбцов (user_id, page, event_date, device, Gender,) и если как анализировать 2 - мне понятно, то как сделать это со всеми 5 - тут возникают сложности.
Есть 4 страницы до которых дошли пользователи '1_home_page' '2_search_page' '3_payment_page' '4_payment_confirmation_page' соответственно число пользователей уменьшается при прохождении каждой страницы. Вот это основной смыл. Но ещё надо раскидать по месяцам и по гендеру.

По месяцам :

import csv

funnel_by_month = {} # создаем словарь, где будут храниться словари за каждый месяц
funnel_template = {'1_home_page':0, '2_search_page':0, '3_payment_page':0, '4_payment_confirmation_page':0}

with open(r'C:\Users\79101\Desktop\Новая папка\click_stream3.csv', mode='r') as csv_file: # открываем файл
csv_reader = csv.DictReader(csv_file, fieldnames=['ID','page','date']) # читаем файл

# проходим циклом по объекту csv_reader
for row in csv_reader: # берем строку из объекта csv_reader

page = list(row.items())[1][1] # вытаскиваем название страницы
event_date = list(row.items())[2][1][:-3] # вытаскиваем дату в формате YYYY-MM

# проверяем существует ли ключ со значением event_date в словаре
if event_date not in funnel_by_month: # если нет
funnel_by_month[event_date] = funnel_template.copy() # создаем ключ, в значение копируем заготовку

# проверяем условиями и прибавляем единицу к нужному ключу в словаре
if page == '1_home_page':
funnel_by_month[event_date]['1_home_page'] += 1
elif page == '2_search_page':
funnel_by_month[event_date]['2_search_page'] += 1
elif page == '3_payment_page':
funnel_by_month[event_date]['3_payment_page'] += 1
else:
funnel_by_month[event_date]['4_payment_confirmation_page'] += 1

funnel_by_month

Как добавить гендер? Значение гендера из файла вытаскивать в переменную gender? Или еще один словарь добавить, запуталась в общем, может кто нибудь сможет подсказать. Понимаю, что с библиотеками было бы проще, но нужно именно без них решить.
Заранее всем спасибо за ответы.
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
@KeitLis Автор вопроса
import csv
funnel_gender = {}
funnel_device={}
funnel_month={}
funnel_set={"1_home_page":0, "2_search_page":0, "3_payment_page":0, "4_payment_confirmation_page":0}
with open(r'C:\Users\79101\Desktop\Новая папка\click_stream3.csv', mode='r') as csv_file: # открываем файл
csv_reader = csv.DictReader(csv_file) # читаем файл
for row in csv_reader:
page=list(row.items())[1][1]
data=list(row.items())[2][1][:-3]
device=list(row.items())[3][1]
gender = list(row.items())[4][1]

if gender not in funnel_gender:
funnel_gender[gender] = funnel_month.copy()
if data not in funnel_gender[gender]:
funnel_gender[gender][data] = funnel_set.copy()

if page=="1_home_page":
funnel_gender[gender][data][page]+=1
elif page=="2_search_page":
funnel_gender[gender][data][page]+=1
elif page=="3_payment_page":
funnel_gender[gender][data][page]+=1
else:
funnel_gender[gender][data][page]+=1
print(funnel_gender)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
30 нояб. 2024, в 22:41
500 руб./за проект
30 нояб. 2024, в 20:49
2000 руб./за проект
30 нояб. 2024, в 20:18
5000 руб./за проект