{ "cells": [ { "cell_type": "markdown", "id": "a85f9417", "metadata": {}, "source": [ "# 采用Plotly展示\n", "\n", "## 从数据库查询\n", "我们将之前保存的全国主要城市的天气信息从数据库中读取。" ] }, { "cell_type": "code", "execution_count": 11, "id": "60ddd2d4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Users\\renb\\PycharmProjects\\weather_dashapp\n" ] } ], "source": [ "import os\n", "import sys\n", "\n", "module_path = os.path.abspath(os.path.join('../..'))\n", "print(module_path)\n", "if module_path not in sys.path:\n", " sys.path.append(module_path)" ] }, { "cell_type": "code", "execution_count": 12, "id": "e0d14d37", "metadata": {}, "outputs": [], "source": [ "from weather_book.weather_app.models.db_models import engine,WeatherInfo\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 13, "id": "be992c5f", "metadata": {}, "outputs": [], "source": [ "df = pd.read_sql_table(WeatherInfo.__tablename__,engine)" ] }, { "cell_type": "code", "execution_count": 14, "id": "5d7eb60d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(89664, 14)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "markdown", "id": "ebe8847c", "metadata": {}, "source": [ "这里我们仅仅展示一个时刻的信息,所以我们需要对每个城市的数据“去重”,仅仅保留最后一个数据。\n", "```需要强调的是:如果数据库比较乱,每个城市最后一个数据对应的时间戳并不相同。```" ] }, { "cell_type": "code", "execution_count": 15, "id": "94994611", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1237, 14)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.drop_duplicates(subset=['city'], keep='last',inplace=True)\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 16, "id": "9ad01a8d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | cloudcover | \n", "lifted_index | \n", "prec_type | \n", "prec_amount | \n", "temp2m | \n", "rh2m | \n", "weather | \n", "timestamp | \n", "wind_direction | \n", "wind_speed | \n", "longitude | \n", "latitude | \n", "city | \n", "id | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5823 | \n", "1 | \n", "15 | \n", "none | \n", "0 | \n", "9 | \n", "12 | \n", "clearday | \n", "2022-02-10 06:00:00 | \n", "W | \n", "3 | \n", "121.4667 | \n", "31.1667 | \n", "Shanghai | \n", "63.0 | \n", "
5887 | \n", "2 | \n", "15 | \n", "rain | \n", "4 | \n", "4 | \n", "31 | \n", "rainday | \n", "2022-02-10 06:00:00 | \n", "NW | \n", "2 | \n", "113.2590 | \n", "23.1288 | \n", "Guangzhou | \n", "127.0 | \n", "
5951 | \n", "1 | \n", "15 | \n", "none | \n", "0 | \n", "5 | \n", "10 | \n", "clearday | \n", "2022-02-10 06:00:00 | \n", "NW | \n", "4 | \n", "116.3914 | \n", "39.9050 | \n", "Beijing | \n", "191.0 | \n", "
6015 | \n", "1 | \n", "15 | \n", "none | \n", "0 | \n", "7 | \n", "11 | \n", "clearday | \n", "2022-02-10 06:00:00 | \n", "NW | \n", "4 | \n", "114.0540 | \n", "22.5350 | \n", "Shenzhen | \n", "255.0 | \n", "
6079 | \n", "9 | \n", "15 | \n", "none | \n", "3 | \n", "11 | \n", "47 | \n", "cloudyday | \n", "2022-02-10 06:00:00 | \n", "S | \n", "2 | \n", "112.5292 | \n", "32.9987 | \n", "Nanyang | \n", "319.0 | \n", "