✅ Решения
⚡ Кратко: суть занятия
Практикум 13 закрепляет связку Colab → pandas → SQLite → SQL-запрос.
Источник просит создать таблицу погоды за последние 7 дней и включить дату, дневную и ночную температуру, световой день, ветер, влажность и давление.
В коде лучше использовать английские имена столбцов: date, day_temp_c, night_temp_c, humidity_pct и другие.
После создания weather_df таблица записывается в SQLite через to_sql('weather', conn, if_exists='replace', index=False).
Минимальные запросы практикума: все строки, последние 3 дня, средняя ночная температура, день с максимальной влажностью.
Для последних 3 дней используется ORDER BY date DESC LIMIT 3, потому что в таблице есть 7 дат.
Топ-3 ошибки: не отсортировать даты перед LIMIT, оставить пробелы/кириллицу в SQL-именах, забыть закрыть подключение.
Решение практикума
import pandas as pd
import sqlite3
from datetime import datetime, timedelta
today = datetime.now()
dates = [today - timedelta(days=i) for i in range(7)]
data = {
'date': [day.strftime('%Y-%m-%d') for day in dates],
'day_temp_c': [23, 25, 22, 20, 21, 24, 26],
'night_temp_c': [15, 16, 14, 13, 15, 17, 18],
'daylight_hours': [14, 14, 13, 13, 14, 14, 13],
'wind_speed_m_s': [5, 6, 7, 5, 4, 6, 7],
'humidity_pct': [65, 70, 68, 72, 71, 69, 66],
'pressure_mm_hg': [1012, 1015, 1013, 1011, 1014, 1016, 1013]
}
weather_df = pd.DataFrame(data)
conn = sqlite3.connect('weather_database.db')
weather_df.to_sql('weather', conn, if_exists='replace', index=False)
query1 = 'SELECT * FROM weather;'
print(pd.read_sql_query(query1, conn))
query2 = 'SELECT * FROM weather ORDER BY date DESC LIMIT 3;'
print(pd.read_sql_query(query2, conn))
query3 = 'SELECT AVG(night_temp_c) AS avg_night_temp_c FROM weather;'
print(pd.read_sql_query(query3, conn))
query4 = 'SELECT date, humidity_pct FROM weather ORDER BY humidity_pct DESC LIMIT 1;'
print(pd.read_sql_query(query4, conn))
conn.close()
Если ваши даты сгенерированы от сегодняшней к более старым, запрос последних 3 дней всё равно должен явно сортировать date DESC: это делает решение устойчивым к любому порядку вставки.