Визуализация временных рядов

Красота и мода Визуализация временных рядов

Общие ошибки

Предположим, у вас есть временной ряд, представляющий часы работы фрилансеров в определенный период времени:

import pandas as pdimport plotly.express as pximport numpy as npimport datetime    link = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/Timeseries/working_hours.csv'df = pd.read_csv(link)# Визуализацияfig = px.line(df, x='day', y='working_hours', title='Часы работы')fig.show()

Мы знаем, что у фрилансеров нет стандартного рабочего дня с 9 до 5.

У них рабочие часы – 24/7, где один день может напоминать марафон работы, а следующий – сиесту!

Тем не менее, временной ряд выглядит довольно странно… это из-за распространенной ошибки в представлении временных рядов.

Давайте создадим более реалистичный график:

import pandas as pdimport plotly.express as pximport plotly.graph_objects as go# Чтение данныхlink = 'https://raw.githubusercontent.com/ianni-phd/Datasets/main/Timeseries/working_hours.csv'df = pd.read_csv(link)# Построение графика, добавление точекfig = px.line(df, x='day', y='working_hours', title='Часы работы')fig.add_trace(    go.Scatter(x=df['day'], y=df['working_hours'],     mode='markers', marker=dict(size=7, color='darkblue')))fig.show()

Мы начинаем замечать проблему, но представим, что мы все еще в замешательстве.

Чтобы обнаружить закономерность, давайте попытаемся определить, влияет ли день недели на данное явление:

# Среднее значение для дня неделиdf['day'] = pd.to_datetime(df['day']) df['day_of_week'] = df['day'].dt.day_name()  weekly_avg = df.groupby('day_of_week')['working_hours'].mean().reset_index()# График столбцовfig = px.bar(weekly_avg, x='day_of_week', y='working_hours', title='Среднее значение')# Настройки графикаfig.update_traces(marker_color='dodgerblue')fig.update_layout(template='plotly_dark'…