Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.1 kB
1
Indexable
Never
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