Untitled
unknown
plain_text
2 years ago
2.1 kB
7
Indexable
import pandas as pd from datetime import datetime, timedelta visits = pd.read_csv('ch02_problems03_visits.csv') # журнал сессий purchases = pd.read_csv('ch02_problems02_orders.csv') # покупки ad_costs = pd.read_csv('ch02_problems02_costs.csv') # траты на рекламу # преобразование данных о времени visits['session_start'] = pd.to_datetime(visits['session_start']) purchases['event_dt'] = pd.to_datetime(purchases['event_dt']) min_date = datetime(2020, 7, 11).date() # добавьте самую раннюю дату в отчёте в формате datetime max_date = datetime(2020, 8, 10).date()# добавьте самую позднюю дату в отчёте в формате datetime # находим количество дней в отчёте days_num = (max_date - min_date).days # создаём пустую таблицу для рекламных трат daily_costs = [] # перебираем данные о затратах по источникам for index, values in ad_costs.iterrows(): channel_name = values['channel']# определите канал привлечения channel_costs = values['costs'] # и общие рекламные траты на него avg_channel_costs = channel_costs/days_num # рассчитайте средние траты за день # заполняем таблицу рекламных трат for i in range(days_num): current_day = min_date + timedelta( days=i) # рассчитайте текущую дату # добавляем строку в таблицу трат daily_costs += [[current_day, channel_name, avg_channel_costs]] # превращаем таблицу рекламных трат в датафрейм daily_costs = pd.DataFrame(daily_costs,columns=['dt', 'channel', 'costs']) # преобразуем данные о времени daily_costs['dt'] = pd.to_datetime(daily_costs['dt']).dt.date
Editor is loading...