Untitled
unknown
plain_text
2 years ago
2.1 kB
9
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.dateEditor is loading...