import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import datetime
# Загрузка данных из файла Excel
xls = pd.ExcelFile('DB_Arctic.xls')
# Получение списка имен листов
sheet_names = xls.sheet_names
while True:
selected_sheet = int(input("Введите номер станции: "))
selected_sheet = selected_sheet-1
selected_sheet = sheet_names[selected_sheet]
df = pd.read_excel(xls, sheet_name=selected_sheet)
# Удаление времени из столбца 't' и оставление только даты
df['t'] = pd.to_datetime(df['t'], format='%d.%m.%Y %H:%M', errors='coerce').dt.date
# Ввод года от пользователя
selected_start_year = int(input("Введите начало периода: "))
selected_end_year = int(input("Введите конец периода: "))
# Определение начального и конечного года в зависимости от введенных пользователем значений.
start_year = selected_start_year - 1
end_year = selected_end_year
# Создание начальной и конечной даты для каждого года
start_date = datetime.date(start_year, 10, 1)
end_date = datetime.date(end_year, 3, 1)
# Цикл по зимним периодам в заданном диапазоне дат
while start_date < end_date:
# Выбор текущего года
current_year = start_date.year
# Функция для проверки зимних месяцев
def is_winter_month(date):
month = date.month
return month in [10, 11, 12, 1, 2, 3]
# Выбор данных только для зимних месяцев и определенного периода
df_selected_year = df[df['t'].apply(lambda x: is_winter_month(x)) &
((df['t'] >= start_date) & (df['t'] < end_date))]
# Расчет средних значений по датам
average_values = round(df_selected_year.groupby('t')['T'].mean().reset_index(),1)
print(average_values)
start_date = datetime.date(current_year + 1, 10, 1)