Пояснение к заданию:
1. Задание требуется выполнять в jupyter notebook.
2. Для подключения к базе данных `clickhouse` можно использовать библиотеку `clickhouse driver`.
3. Для подключения к базе можно использовать следующий код: 
```python
from clickhouse driver import Client

client = Client('oleg.orbita.work', port = 9000, user = student_ml, password = CGRV8zemLGgsfdz7Uc6ZJeisGTcPQa, settings = {'use_numpy': True})
```
**Задание:**
1. Загрузите данные из таблицы weather history, которая находится в базе students datas  
	Расшифровка:
	- `idx` - индекс ВМО
	- `year` - год
	- `month` - месяц
	- `day` - день
	- `min_t` - минимальная температура воздуха
	- `average_t` - средняя температура воздуха
	- `max_t` - максимальная температура воздуха
	- `rainfall` - количество осадков
2. Удалите столбец `idx`.
3. Используя метод `info()`, ответьте на вопросы:
	- Есть ли в данных пропущенные значения?
	- В каком столбце данных больше всего пропущенных значений?
4. В данных за какой год больше всего пропусков?
5. Объедините столбцы «Год», «Месяц» и «День» в один столбец «Дата» в формате гггг-мм-дд (2000-01-20). Данные в новом столбце должны иметь формат datetime
6. Для каждого наблюдения рассчитайте размах температур (разность максимальной и минимальной суточных температур) и количество предшествующих ему дней без осадков (используйте циклы Python и условный оператор):
7. Определите самый длинный период засухи
8. Для каждого года вычислите среднегодовую температуру и общее количество осадков. Запишите результаты в объекты `Series`
	- Какой год можно считать самым теплым? Какой самым холодным?
	- В какой год выпало больше всего осадков? В какой меньше всего? Используя запись `имя_серии.plot()` вы можете построить график и посмотреть как изменялась температура. С помощью `имя_серии.plot.bar()` можно отобразить на столбиковой диаграмме количество осадков, выпавших в каждый год
9. Выведете наблюдения, удовлетворяющие условиям:
	- Средняя температура воздуха ниже -30 °С
	- Средняя температура воздуха выше 27 °С и количество дней без осадков больше 3
  
**Полезные функции и методы:**  
Одну и ту же задачу можно решить несколькими способами. Эти функции и методы могут вам понадобиться:
- `.head()` - отобразить несколько первых строк DataFrame
- `.info()` - информация о DataFrame
- `.drop()` - удалить строки или столбцы
- `.dtypes()` - узнать тип данных в столбце
- `.astype()`, `to_datetime()`, `.to_numeric()` - изменить тип данных
- `.isnull().sum()` - вычислить количество пропущенных значений в каждом столбце
- `.max()`, `.min()`, `.mean()` - максимум, минимум, среднее значение
- `pd.Grouper()`, `.groupby()` - группировка наблюдений
- `.agg()` - агрегирование наблюдений
- `.tuncate()` - логическая индексация (можно использовать даты)
  
Уже знакомые вам операторы тоже работают с pandas. Действие (или условие) выполняется (или проверяется) для каждого наблюдения. Так, например, чтобы найти разность между двумя числовыми характеристиками (столбцами) по всему набору данных, используйте оператор «`-`»: `имя_DF [«новый_столбец»] = имя_DF [«столбец_1»] - имя_DF [«столбец_2]»`. Если необходимо найти сумму двух числовых характеристика или склеить строковые значения двух столбцов - используйте «`+`». Если вы хотите получить значения, которые больше заданного числа, например 5, используйте запись `имя_DataFrame [«имя столбца»] > 5`  
Шпаргалка: https://smysl.io/blog/pandas/.