diff --git a/analysis/main.py b/analysis/main.py new file mode 100644 index 0000000..96c1920 --- /dev/null +++ b/analysis/main.py @@ -0,0 +1,87 @@ +import pandas as pd + +# Загрузка данных из CSV файла +data = pd.read_csv('test.csv') + +# Преобразование даты в тип datetime +data['date'] = pd.to_datetime(data['date']) + +# Добавление времени суток и дня недели +data['time_of_day'] = data['date'].dt.hour +data['day_of_week'] = data['date'].dt.dayofweek + +# Проверка данных +print(data.head()) + + + +import matplotlib.pyplot as plt + +# Группировка по времени суток и анализ средней цены +price_by_time = data.groupby('time_of_day')['price'].mean() + +# Группировка по дням недели +price_by_day = data.groupby('day_of_week')['price'].mean() + +# Визуализация +plt.figure(figsize=(12, 6)) + +# График изменения цен по времени суток +plt.subplot(1, 2, 1) +plt.plot(price_by_time) +plt.title('Цены в зависимости от времени суток') +plt.xlabel('Час дня') +plt.ylabel('Средняя цена') + +# График изменения цен по дням недели +plt.subplot(1, 2, 2) +plt.plot(price_by_day) +plt.title('Цены в зависимости от дня недели') +plt.xlabel('День недели') +plt.ylabel('Средняя цена') + +plt.tight_layout() +plt.show() + + + +from prophet import Prophet + +# Подготовка данных для Prophet +df = data[['date', 'price']].rename(columns={'date': 'ds', 'price': 'y'}) + +# Обучение модели +model = Prophet() +model.fit(df) + +# Прогнозирование на следующие 30 дней +future = model.make_future_dataframe(periods=30) +forecast = model.predict(future) + +# Визуализация прогноза +model.plot(forecast) +plt.title('Прогноз цен на следующие 30 дней') +plt.show() + + +# Пример использования данных о температуре в качестве регрессора +data['temperature'] = data['temperature'] # Предположим, что данные о температуре уже добавлены в CSV + +# Подготовка данных для Prophet с погодными условиями +df = data[['date', 'price', 'temperature']].rename(columns={'date': 'ds', 'price': 'y', 'temperature': 'temp'}) + +# Обучение модели с дополнительным регрессором +model = Prophet() +model.add_regressor('temp') +model.fit(df) + +# Прогнозирование +future = model.make_future_dataframe(periods=30) +future['temp'] = 22.0 # Предположим, что это прогнозируемая температура + +forecast = model.predict(future) + +# График прогноза с учетом погодных условий +model.plot(forecast) +plt.title('Прогноз цен с учетом погодных условий') +plt.show()