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()