Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AdrianoPereira/ab3f75039cc87709928382342f4ab820 to your computer and use it in GitHub Desktop.
Save AdrianoPereira/ab3f75039cc87709928382342f4ab820 to your computer and use it in GitHub Desktop.
hand-on-data-science-weather-dataset
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyO9BlaM9+c5iikd1iTvVGAS",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/AdrianoPereira/ab3f75039cc87709928382342f4ab820/hand-on-data-science-weather-dataset.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"## Importando bibliotecas\n",
"---"
],
"metadata": {
"id": "AYd6zK1MjpB9"
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "V__bHfSPh_uX"
},
"outputs": [],
"source": [
"import plotnine as p9\n",
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"source": [
"## Lendo conjunto de dados\n",
"---"
],
"metadata": {
"id": "FhgJb20Qjuv8"
}
},
{
"cell_type": "code",
"source": [
"data = pd.read_csv('inamet_dataset.csv')\n",
"data.head(5)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 443
},
"id": "9-_nAhXbirwe",
"outputId": "0b5d5732-23e7-4cc2-e92d-feabaff64275"
},
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" datetime station total_precipitation mean_pressure \\\n",
"0 2019-01-01 01:00:00 A652 0.0 1009.3 \n",
"1 2019-01-01 02:00:00 A652 0.0 1009.1 \n",
"2 2019-01-01 03:00:00 A652 0.0 1008.2 \n",
"3 2019-01-01 04:00:00 A652 0.0 1008.0 \n",
"4 2019-01-01 05:00:00 A652 0.0 1007.6 \n",
"\n",
" max_pressure min_pressure global_radiation wetbulb_temp dewpoint_temp \\\n",
"0 1009.4 1008.9 NaN 25.3 22.8 \n",
"1 1009.4 1009.1 NaN 25.0 22.8 \n",
"2 1009.1 1008.2 NaN 24.7 22.7 \n",
"3 1008.2 1008.0 NaN 24.9 22.8 \n",
"4 1008.0 1007.5 NaN 24.8 22.6 \n",
"\n",
" max_temp min_temp dewpoint_max_temp dewpoint_min_temp max_humidity \\\n",
"0 25.4 25.1 22.9 22.7 87.0 \n",
"1 25.3 25.0 22.9 22.8 87.0 \n",
"2 25.1 24.7 22.9 22.6 89.0 \n",
"3 25.0 24.7 22.9 22.7 89.0 \n",
"4 25.0 24.7 22.9 22.5 88.0 \n",
"\n",
" min_humidity mean_humidity wind_direction max_wind mean_wind \n",
"0 86.0 86.0 111.0 2.0 0.9 \n",
"1 86.0 87.0 100.0 2.6 1.7 \n",
"2 87.0 89.0 145.0 2.5 1.5 \n",
"3 88.0 88.0 276.0 2.0 1.3 \n",
"4 87.0 87.0 140.0 1.9 0.7 "
],
"text/html": [
"\n",
" <div id=\"df-0cf398f8-2dd8-4129-8e49-32b1c174dbce\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>datetime</th>\n",
" <th>station</th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2019-01-01 01:00:00</td>\n",
" <td>A652</td>\n",
" <td>0.0</td>\n",
" <td>1009.3</td>\n",
" <td>1009.4</td>\n",
" <td>1008.9</td>\n",
" <td>NaN</td>\n",
" <td>25.3</td>\n",
" <td>22.8</td>\n",
" <td>25.4</td>\n",
" <td>25.1</td>\n",
" <td>22.9</td>\n",
" <td>22.7</td>\n",
" <td>87.0</td>\n",
" <td>86.0</td>\n",
" <td>86.0</td>\n",
" <td>111.0</td>\n",
" <td>2.0</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2019-01-01 02:00:00</td>\n",
" <td>A652</td>\n",
" <td>0.0</td>\n",
" <td>1009.1</td>\n",
" <td>1009.4</td>\n",
" <td>1009.1</td>\n",
" <td>NaN</td>\n",
" <td>25.0</td>\n",
" <td>22.8</td>\n",
" <td>25.3</td>\n",
" <td>25.0</td>\n",
" <td>22.9</td>\n",
" <td>22.8</td>\n",
" <td>87.0</td>\n",
" <td>86.0</td>\n",
" <td>87.0</td>\n",
" <td>100.0</td>\n",
" <td>2.6</td>\n",
" <td>1.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2019-01-01 03:00:00</td>\n",
" <td>A652</td>\n",
" <td>0.0</td>\n",
" <td>1008.2</td>\n",
" <td>1009.1</td>\n",
" <td>1008.2</td>\n",
" <td>NaN</td>\n",
" <td>24.7</td>\n",
" <td>22.7</td>\n",
" <td>25.1</td>\n",
" <td>24.7</td>\n",
" <td>22.9</td>\n",
" <td>22.6</td>\n",
" <td>89.0</td>\n",
" <td>87.0</td>\n",
" <td>89.0</td>\n",
" <td>145.0</td>\n",
" <td>2.5</td>\n",
" <td>1.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2019-01-01 04:00:00</td>\n",
" <td>A652</td>\n",
" <td>0.0</td>\n",
" <td>1008.0</td>\n",
" <td>1008.2</td>\n",
" <td>1008.0</td>\n",
" <td>NaN</td>\n",
" <td>24.9</td>\n",
" <td>22.8</td>\n",
" <td>25.0</td>\n",
" <td>24.7</td>\n",
" <td>22.9</td>\n",
" <td>22.7</td>\n",
" <td>89.0</td>\n",
" <td>88.0</td>\n",
" <td>88.0</td>\n",
" <td>276.0</td>\n",
" <td>2.0</td>\n",
" <td>1.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2019-01-01 05:00:00</td>\n",
" <td>A652</td>\n",
" <td>0.0</td>\n",
" <td>1007.6</td>\n",
" <td>1008.0</td>\n",
" <td>1007.5</td>\n",
" <td>NaN</td>\n",
" <td>24.8</td>\n",
" <td>22.6</td>\n",
" <td>25.0</td>\n",
" <td>24.7</td>\n",
" <td>22.9</td>\n",
" <td>22.5</td>\n",
" <td>88.0</td>\n",
" <td>87.0</td>\n",
" <td>87.0</td>\n",
" <td>140.0</td>\n",
" <td>1.9</td>\n",
" <td>0.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0cf398f8-2dd8-4129-8e49-32b1c174dbce')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0cf398f8-2dd8-4129-8e49-32b1c174dbce button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0cf398f8-2dd8-4129-8e49-32b1c174dbce');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 2
}
]
},
{
"cell_type": "markdown",
"source": [
"## Verificando informações estatísticas básicas\n",
"---"
],
"metadata": {
"id": "jgHHC8iZj2_n"
}
},
{
"cell_type": "code",
"source": [
"data.describe()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 364
},
"id": "DNiwhowZjzm1",
"outputId": "a1f17dd5-57c0-4c0c-d990-8fadea4acc4e"
},
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation mean_pressure max_pressure min_pressure \\\n",
"count 97816.000000 96162.000000 96149.000000 96148.000000 \n",
"mean 0.164476 1013.978953 1014.222178 1013.733862 \n",
"std 1.425806 4.753758 4.737111 4.763201 \n",
"min 0.000000 1000.800000 1001.000000 1000.500000 \n",
"25% 0.000000 1010.700000 1011.000000 1010.500000 \n",
"50% 0.000000 1013.400000 1013.600000 1013.100000 \n",
"75% 0.000000 1016.500000 1016.800000 1016.300000 \n",
"max 71.600000 1032.700000 1032.800000 1032.100000 \n",
"\n",
" global_radiation wetbulb_temp dewpoint_temp max_temp \\\n",
"count 53709.000000 97811.000000 94874.000000 97797.000000 \n",
"mean 1330.599901 24.194772 19.536653 24.730916 \n",
"std 1129.708361 4.029384 2.926451 4.177568 \n",
"min 0.000000 8.800000 5.100000 9.300000 \n",
"25% 263.600000 21.600000 17.800000 22.000000 \n",
"50% 1098.200000 23.900000 20.000000 24.400000 \n",
"75% 2251.300000 26.600000 21.700000 27.200000 \n",
"max 4251.100000 41.200000 30.000000 41.400000 \n",
"\n",
" min_temp dewpoint_max_temp dewpoint_min_temp max_humidity \\\n",
"count 97797.000000 94851.000000 94801.000000 94943.000000 \n",
"mean 23.692847 20.004116 19.086591 79.672572 \n",
"std 3.879428 2.882379 2.982142 13.305928 \n",
"min 8.800000 6.800000 3.600000 15.000000 \n",
"25% 21.200000 18.300000 17.300000 72.000000 \n",
"50% 23.500000 20.400000 19.600000 83.000000 \n",
"75% 26.000000 22.100000 21.300000 90.000000 \n",
"max 40.000000 30.900000 28.600000 100.000000 \n",
"\n",
" min_humidity mean_humidity wind_direction max_wind mean_wind \n",
"count 94864.000000 94895.000000 97112.000000 97087.000000 97113.000000 \n",
"mean 74.859673 77.360873 153.163080 5.419689 2.501676 \n",
"std 15.413359 14.406494 102.870096 3.281593 2.014864 \n",
"min 15.000000 18.000000 1.000000 0.000000 0.000000 \n",
"25% 65.000000 68.000000 60.000000 2.900000 1.100000 \n",
"50% 78.000000 80.000000 135.000000 4.700000 1.900000 \n",
"75% 88.000000 89.000000 244.000000 7.200000 3.400000 \n",
"max 100.000000 100.000000 360.000000 32.200000 18.200000 "
],
"text/html": [
"\n",
" <div id=\"df-db1ac3cd-2a7f-48f4-b30a-4549768e62f4\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>97816.000000</td>\n",
" <td>96162.000000</td>\n",
" <td>96149.000000</td>\n",
" <td>96148.000000</td>\n",
" <td>53709.000000</td>\n",
" <td>97811.000000</td>\n",
" <td>94874.000000</td>\n",
" <td>97797.000000</td>\n",
" <td>97797.000000</td>\n",
" <td>94851.000000</td>\n",
" <td>94801.000000</td>\n",
" <td>94943.000000</td>\n",
" <td>94864.000000</td>\n",
" <td>94895.000000</td>\n",
" <td>97112.000000</td>\n",
" <td>97087.000000</td>\n",
" <td>97113.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.164476</td>\n",
" <td>1013.978953</td>\n",
" <td>1014.222178</td>\n",
" <td>1013.733862</td>\n",
" <td>1330.599901</td>\n",
" <td>24.194772</td>\n",
" <td>19.536653</td>\n",
" <td>24.730916</td>\n",
" <td>23.692847</td>\n",
" <td>20.004116</td>\n",
" <td>19.086591</td>\n",
" <td>79.672572</td>\n",
" <td>74.859673</td>\n",
" <td>77.360873</td>\n",
" <td>153.163080</td>\n",
" <td>5.419689</td>\n",
" <td>2.501676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.425806</td>\n",
" <td>4.753758</td>\n",
" <td>4.737111</td>\n",
" <td>4.763201</td>\n",
" <td>1129.708361</td>\n",
" <td>4.029384</td>\n",
" <td>2.926451</td>\n",
" <td>4.177568</td>\n",
" <td>3.879428</td>\n",
" <td>2.882379</td>\n",
" <td>2.982142</td>\n",
" <td>13.305928</td>\n",
" <td>15.413359</td>\n",
" <td>14.406494</td>\n",
" <td>102.870096</td>\n",
" <td>3.281593</td>\n",
" <td>2.014864</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>1000.800000</td>\n",
" <td>1001.000000</td>\n",
" <td>1000.500000</td>\n",
" <td>0.000000</td>\n",
" <td>8.800000</td>\n",
" <td>5.100000</td>\n",
" <td>9.300000</td>\n",
" <td>8.800000</td>\n",
" <td>6.800000</td>\n",
" <td>3.600000</td>\n",
" <td>15.000000</td>\n",
" <td>15.000000</td>\n",
" <td>18.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>1010.700000</td>\n",
" <td>1011.000000</td>\n",
" <td>1010.500000</td>\n",
" <td>263.600000</td>\n",
" <td>21.600000</td>\n",
" <td>17.800000</td>\n",
" <td>22.000000</td>\n",
" <td>21.200000</td>\n",
" <td>18.300000</td>\n",
" <td>17.300000</td>\n",
" <td>72.000000</td>\n",
" <td>65.000000</td>\n",
" <td>68.000000</td>\n",
" <td>60.000000</td>\n",
" <td>2.900000</td>\n",
" <td>1.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.000000</td>\n",
" <td>1013.400000</td>\n",
" <td>1013.600000</td>\n",
" <td>1013.100000</td>\n",
" <td>1098.200000</td>\n",
" <td>23.900000</td>\n",
" <td>20.000000</td>\n",
" <td>24.400000</td>\n",
" <td>23.500000</td>\n",
" <td>20.400000</td>\n",
" <td>19.600000</td>\n",
" <td>83.000000</td>\n",
" <td>78.000000</td>\n",
" <td>80.000000</td>\n",
" <td>135.000000</td>\n",
" <td>4.700000</td>\n",
" <td>1.900000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.000000</td>\n",
" <td>1016.500000</td>\n",
" <td>1016.800000</td>\n",
" <td>1016.300000</td>\n",
" <td>2251.300000</td>\n",
" <td>26.600000</td>\n",
" <td>21.700000</td>\n",
" <td>27.200000</td>\n",
" <td>26.000000</td>\n",
" <td>22.100000</td>\n",
" <td>21.300000</td>\n",
" <td>90.000000</td>\n",
" <td>88.000000</td>\n",
" <td>89.000000</td>\n",
" <td>244.000000</td>\n",
" <td>7.200000</td>\n",
" <td>3.400000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>71.600000</td>\n",
" <td>1032.700000</td>\n",
" <td>1032.800000</td>\n",
" <td>1032.100000</td>\n",
" <td>4251.100000</td>\n",
" <td>41.200000</td>\n",
" <td>30.000000</td>\n",
" <td>41.400000</td>\n",
" <td>40.000000</td>\n",
" <td>30.900000</td>\n",
" <td>28.600000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>360.000000</td>\n",
" <td>32.200000</td>\n",
" <td>18.200000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-db1ac3cd-2a7f-48f4-b30a-4549768e62f4')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-db1ac3cd-2a7f-48f4-b30a-4549768e62f4 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-db1ac3cd-2a7f-48f4-b30a-4549768e62f4');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 3
}
]
},
{
"cell_type": "markdown",
"source": [
"## Tratando valores nulos"
],
"metadata": {
"id": "MHIqbiX_kEPj"
}
},
{
"cell_type": "code",
"source": [
"data = data.replace({-9999: np.nan})\n",
"data.describe()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 364
},
"id": "a_OQ1PIEkAbC",
"outputId": "7901574c-4e7a-4a7f-ca5e-eb24510b09bc"
},
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation mean_pressure max_pressure min_pressure \\\n",
"count 97816.000000 96162.000000 96149.000000 96148.000000 \n",
"mean 0.164476 1013.978953 1014.222178 1013.733862 \n",
"std 1.425806 4.753758 4.737111 4.763201 \n",
"min 0.000000 1000.800000 1001.000000 1000.500000 \n",
"25% 0.000000 1010.700000 1011.000000 1010.500000 \n",
"50% 0.000000 1013.400000 1013.600000 1013.100000 \n",
"75% 0.000000 1016.500000 1016.800000 1016.300000 \n",
"max 71.600000 1032.700000 1032.800000 1032.100000 \n",
"\n",
" global_radiation wetbulb_temp dewpoint_temp max_temp \\\n",
"count 53709.000000 97811.000000 94874.000000 97797.000000 \n",
"mean 1330.599901 24.194772 19.536653 24.730916 \n",
"std 1129.708361 4.029384 2.926451 4.177568 \n",
"min 0.000000 8.800000 5.100000 9.300000 \n",
"25% 263.600000 21.600000 17.800000 22.000000 \n",
"50% 1098.200000 23.900000 20.000000 24.400000 \n",
"75% 2251.300000 26.600000 21.700000 27.200000 \n",
"max 4251.100000 41.200000 30.000000 41.400000 \n",
"\n",
" min_temp dewpoint_max_temp dewpoint_min_temp max_humidity \\\n",
"count 97797.000000 94851.000000 94801.000000 94943.000000 \n",
"mean 23.692847 20.004116 19.086591 79.672572 \n",
"std 3.879428 2.882379 2.982142 13.305928 \n",
"min 8.800000 6.800000 3.600000 15.000000 \n",
"25% 21.200000 18.300000 17.300000 72.000000 \n",
"50% 23.500000 20.400000 19.600000 83.000000 \n",
"75% 26.000000 22.100000 21.300000 90.000000 \n",
"max 40.000000 30.900000 28.600000 100.000000 \n",
"\n",
" min_humidity mean_humidity wind_direction max_wind mean_wind \n",
"count 94864.000000 94895.000000 97112.000000 97087.000000 97113.000000 \n",
"mean 74.859673 77.360873 153.163080 5.419689 2.501676 \n",
"std 15.413359 14.406494 102.870096 3.281593 2.014864 \n",
"min 15.000000 18.000000 1.000000 0.000000 0.000000 \n",
"25% 65.000000 68.000000 60.000000 2.900000 1.100000 \n",
"50% 78.000000 80.000000 135.000000 4.700000 1.900000 \n",
"75% 88.000000 89.000000 244.000000 7.200000 3.400000 \n",
"max 100.000000 100.000000 360.000000 32.200000 18.200000 "
],
"text/html": [
"\n",
" <div id=\"df-655c8696-e4b6-4cc7-8f82-912acdfcfaeb\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>97816.000000</td>\n",
" <td>96162.000000</td>\n",
" <td>96149.000000</td>\n",
" <td>96148.000000</td>\n",
" <td>53709.000000</td>\n",
" <td>97811.000000</td>\n",
" <td>94874.000000</td>\n",
" <td>97797.000000</td>\n",
" <td>97797.000000</td>\n",
" <td>94851.000000</td>\n",
" <td>94801.000000</td>\n",
" <td>94943.000000</td>\n",
" <td>94864.000000</td>\n",
" <td>94895.000000</td>\n",
" <td>97112.000000</td>\n",
" <td>97087.000000</td>\n",
" <td>97113.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.164476</td>\n",
" <td>1013.978953</td>\n",
" <td>1014.222178</td>\n",
" <td>1013.733862</td>\n",
" <td>1330.599901</td>\n",
" <td>24.194772</td>\n",
" <td>19.536653</td>\n",
" <td>24.730916</td>\n",
" <td>23.692847</td>\n",
" <td>20.004116</td>\n",
" <td>19.086591</td>\n",
" <td>79.672572</td>\n",
" <td>74.859673</td>\n",
" <td>77.360873</td>\n",
" <td>153.163080</td>\n",
" <td>5.419689</td>\n",
" <td>2.501676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.425806</td>\n",
" <td>4.753758</td>\n",
" <td>4.737111</td>\n",
" <td>4.763201</td>\n",
" <td>1129.708361</td>\n",
" <td>4.029384</td>\n",
" <td>2.926451</td>\n",
" <td>4.177568</td>\n",
" <td>3.879428</td>\n",
" <td>2.882379</td>\n",
" <td>2.982142</td>\n",
" <td>13.305928</td>\n",
" <td>15.413359</td>\n",
" <td>14.406494</td>\n",
" <td>102.870096</td>\n",
" <td>3.281593</td>\n",
" <td>2.014864</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>1000.800000</td>\n",
" <td>1001.000000</td>\n",
" <td>1000.500000</td>\n",
" <td>0.000000</td>\n",
" <td>8.800000</td>\n",
" <td>5.100000</td>\n",
" <td>9.300000</td>\n",
" <td>8.800000</td>\n",
" <td>6.800000</td>\n",
" <td>3.600000</td>\n",
" <td>15.000000</td>\n",
" <td>15.000000</td>\n",
" <td>18.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>1010.700000</td>\n",
" <td>1011.000000</td>\n",
" <td>1010.500000</td>\n",
" <td>263.600000</td>\n",
" <td>21.600000</td>\n",
" <td>17.800000</td>\n",
" <td>22.000000</td>\n",
" <td>21.200000</td>\n",
" <td>18.300000</td>\n",
" <td>17.300000</td>\n",
" <td>72.000000</td>\n",
" <td>65.000000</td>\n",
" <td>68.000000</td>\n",
" <td>60.000000</td>\n",
" <td>2.900000</td>\n",
" <td>1.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.000000</td>\n",
" <td>1013.400000</td>\n",
" <td>1013.600000</td>\n",
" <td>1013.100000</td>\n",
" <td>1098.200000</td>\n",
" <td>23.900000</td>\n",
" <td>20.000000</td>\n",
" <td>24.400000</td>\n",
" <td>23.500000</td>\n",
" <td>20.400000</td>\n",
" <td>19.600000</td>\n",
" <td>83.000000</td>\n",
" <td>78.000000</td>\n",
" <td>80.000000</td>\n",
" <td>135.000000</td>\n",
" <td>4.700000</td>\n",
" <td>1.900000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.000000</td>\n",
" <td>1016.500000</td>\n",
" <td>1016.800000</td>\n",
" <td>1016.300000</td>\n",
" <td>2251.300000</td>\n",
" <td>26.600000</td>\n",
" <td>21.700000</td>\n",
" <td>27.200000</td>\n",
" <td>26.000000</td>\n",
" <td>22.100000</td>\n",
" <td>21.300000</td>\n",
" <td>90.000000</td>\n",
" <td>88.000000</td>\n",
" <td>89.000000</td>\n",
" <td>244.000000</td>\n",
" <td>7.200000</td>\n",
" <td>3.400000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>71.600000</td>\n",
" <td>1032.700000</td>\n",
" <td>1032.800000</td>\n",
" <td>1032.100000</td>\n",
" <td>4251.100000</td>\n",
" <td>41.200000</td>\n",
" <td>30.000000</td>\n",
" <td>41.400000</td>\n",
" <td>40.000000</td>\n",
" <td>30.900000</td>\n",
" <td>28.600000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>360.000000</td>\n",
" <td>32.200000</td>\n",
" <td>18.200000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-655c8696-e4b6-4cc7-8f82-912acdfcfaeb')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-655c8696-e4b6-4cc7-8f82-912acdfcfaeb button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-655c8696-e4b6-4cc7-8f82-912acdfcfaeb');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 1: Qual as variáveis disponíveis no conjunto de dados?\n",
"\n"
],
"metadata": {
"id": "cZrZl0yPkPAA"
}
},
{
"cell_type": "code",
"source": [
"for column in data.columns:\n",
" print(column)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "v60cSTnBkNSD",
"outputId": "a68ed483-a8c5-49c0-e2b4-6deb66844723"
},
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"datetime\n",
"station\n",
"total_precipitation\n",
"mean_pressure\n",
"max_pressure\n",
"min_pressure\n",
"global_radiation\n",
"wetbulb_temp\n",
"dewpoint_temp\n",
"max_temp\n",
"min_temp\n",
"dewpoint_max_temp\n",
"dewpoint_min_temp\n",
"max_humidity\n",
"min_humidity\n",
"mean_humidity\n",
"wind_direction\n",
"max_wind\n",
"mean_wind\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 2: Em qual horário foi registrado a maior ocorrência de chuva?\n",
"\n"
],
"metadata": {
"id": "6SxLzFOqkc9r"
}
},
{
"cell_type": "code",
"source": [
"# verificando tipo de variável da coluna datetime\n",
"print(f\"Tipo da variável datetime {type(data['datetime'].iloc[0])}\")\n",
"\n",
"# traformando variável datetime para o formato de data e hora\n",
"data['datetime'] = pd.to_datetime(data['datetime'])\n",
"\n",
"# printando novamente o tipo de variável datetime após a transformação\n",
"print(f\"Tipo da variável datetime {type(data['datetime'].iloc[0])}\")\n",
"\n",
"# Verificando data e hora com a maior taxa de precipitação registrada\n",
"max_prec = data['total_precipitation'].max()\n",
"linha_max_prec = data.loc[data['total_precipitation'] == max_prec]\n",
"print(f\"Horário da maior taxa de precipitação registrada: {linha_max_prec['datetime'].values[0]}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Q152G-i-kd9-",
"outputId": "562c0812-8cd5-46f0-c486-8ec702304e14"
},
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Tipo da variável datetime <class 'str'>\n",
"Tipo da variável datetime <class 'pandas._libs.tslibs.timestamps.Timestamp'>\n",
"Horário da maior taxa de precipitação registrada: 2019-04-08T22:00:00.000000000\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 3: Quais as estações meteorológicas registraram as temperatura maxima < 15\n",
"\n"
],
"metadata": {
"id": "HZ1I-jqQmVQF"
}
},
{
"cell_type": "code",
"source": [
"temp_maior_15 = data.loc[data['max_temp'] < 15]\n",
"temp_maior_15['station'].unique()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1tkhwDFOmTU7",
"outputId": "3577b9c2-ef3d-471c-fc0f-9f0cfd996752"
},
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array(['A602', 'A627', 'A619', 'A607', 'A608', 'A659', 'A667', 'A621'],\n",
" dtype=object)"
]
},
"metadata": {},
"execution_count": 7
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 4: Quais as estações com o total de precipitação maior que 2mm e temperatura máxima > 30\n",
"\n"
],
"metadata": {
"id": "4FqrYeoWmdWe"
}
},
{
"cell_type": "code",
"source": [
"# Utilizando indexação booleana\n",
"ib_prec_maior_2 = data['total_precipitation'] > 2\n",
"ib_temp_maior_30 = data['max_temp'] > 30\n",
"\n",
"prec_maior_2_temp_maior_30 = data.loc[ib_prec_maior_2 & ib_temp_maior_30]\n",
"prec_maior_2_temp_maior_30"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "_A6KIq6lmbXw",
"outputId": "5da95c08-7b5b-4abe-ec01-acf76eac6b18"
},
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" datetime station total_precipitation mean_pressure \\\n",
"17634 2019-01-05 21:00:00 A627 9.4 1014.0 \n",
"18137 2019-01-26 20:00:00 A627 5.8 1014.4 \n",
"18664 2019-02-17 19:00:00 A627 6.4 1008.2 \n",
"20349 2019-04-29 00:00:00 A627 4.6 1011.2 \n",
"25651 2019-12-05 22:00:00 A627 2.6 1007.6 \n",
"26364 2019-01-04 16:00:00 A619 3.2 1009.3 \n",
"27302 2019-02-12 18:00:00 A619 4.8 1009.7 \n",
"27493 2019-02-20 17:00:00 A619 4.4 1009.1 \n",
"27614 2019-02-25 18:00:00 A619 14.2 1009.4 \n",
"28044 2019-03-15 16:00:00 A619 3.0 1012.6 \n",
"35127 2019-01-04 20:00:00 A607 14.2 1008.2 \n",
"36255 2019-02-20 20:00:00 A607 2.6 1006.3 \n",
"36278 2019-02-21 19:00:00 A607 7.2 1013.1 \n",
"36446 2019-02-28 19:00:00 A607 27.2 1007.5 \n",
"61331 2019-01-01 19:00:00 A659 18.8 1010.9 \n",
"62505 2019-02-19 17:00:00 A659 12.0 1007.2 \n",
"62655 2019-02-25 23:00:00 A659 10.6 1009.4 \n",
"62818 2019-03-04 18:00:00 A659 2.8 1012.6 \n",
"62841 2019-03-05 17:00:00 A659 12.2 1013.3 \n",
"69149 2019-11-23 13:00:00 A659 7.0 1006.7 \n",
"69630 2019-12-13 14:00:00 A659 15.4 1009.5 \n",
"78871 2019-01-02 17:00:00 A621 3.8 1009.3 \n",
"79330 2019-01-21 20:00:00 A621 14.4 1008.3 \n",
"80171 2019-02-25 21:00:00 A621 12.0 1007.0 \n",
"88757 2019-02-18 16:00:00 A620 4.8 1012.0 \n",
"97354 2019-02-11 22:00:00 A601 2.6 1008.0 \n",
"97494 2019-02-17 18:00:00 A601 13.0 1004.5 \n",
"\n",
" max_pressure min_pressure global_radiation wetbulb_temp \\\n",
"17634 1014.0 1011.7 344.1 23.6 \n",
"18137 1014.8 1013.2 840.1 24.7 \n",
"18664 1008.8 1007.1 167.2 24.8 \n",
"20349 1011.3 1007.0 NaN 24.3 \n",
"25651 1007.6 1006.0 NaN 26.4 \n",
"26364 1010.4 1009.3 1085.0 29.4 \n",
"27302 1010.1 1009.5 977.9 26.9 \n",
"27493 1010.0 1009.1 951.0 27.3 \n",
"27614 1009.8 1006.9 65.2 24.0 \n",
"28044 1012.7 1012.6 481.3 25.8 \n",
"35127 1008.2 1006.0 97.6 22.7 \n",
"36255 1006.3 1004.8 281.1 26.2 \n",
"36278 1013.1 1011.3 486.1 26.7 \n",
"36446 1010.0 1007.1 148.0 24.9 \n",
"61331 1011.0 1010.1 310.8 25.7 \n",
"62505 1008.5 1007.2 1023.3 24.8 \n",
"62655 1009.7 1005.5 NaN 22.1 \n",
"62818 1012.7 1012.3 1251.9 28.9 \n",
"62841 1013.9 1013.3 838.3 26.2 \n",
"69149 1006.7 1005.1 1090.7 23.6 \n",
"69630 1009.5 1008.2 563.6 24.1 \n",
"78871 1009.9 1009.2 1362.8 30.3 \n",
"79330 1008.5 1007.3 459.1 29.3 \n",
"80171 1007.4 1004.1 51.0 22.9 \n",
"88757 1012.0 1010.5 1580.9 24.7 \n",
"97354 1008.0 1005.8 2.0 24.2 \n",
"97494 1005.1 1004.2 553.6 26.7 \n",
"\n",
" dewpoint_temp max_temp min_temp dewpoint_max_temp \\\n",
"17634 NaN 30.4 23.6 NaN \n",
"18137 20.7 32.9 24.0 22.8 \n",
"18664 23.1 31.1 24.7 23.6 \n",
"20349 20.4 30.9 23.9 23.2 \n",
"25651 24.0 30.1 26.2 24.4 \n",
"26364 23.4 31.7 27.9 24.6 \n",
"27302 23.4 34.0 26.8 25.0 \n",
"27493 23.8 31.1 24.5 24.2 \n",
"27614 22.8 32.0 23.0 24.8 \n",
"28044 24.1 30.5 25.8 24.4 \n",
"35127 21.2 31.7 22.5 21.9 \n",
"36255 22.7 33.9 26.1 23.4 \n",
"36278 23.2 31.6 26.7 23.2 \n",
"36446 23.2 32.4 21.8 24.2 \n",
"61331 23.5 32.5 24.6 23.9 \n",
"62505 22.3 33.3 24.7 24.8 \n",
"62655 20.6 30.3 22.1 25.1 \n",
"62818 24.6 33.4 28.9 24.7 \n",
"62841 23.5 32.1 26.2 24.8 \n",
"69149 20.1 35.5 23.6 21.4 \n",
"69630 21.8 33.1 23.7 23.8 \n",
"78871 23.9 32.5 27.8 24.7 \n",
"79330 21.9 37.1 27.4 23.6 \n",
"80171 21.1 31.1 22.9 21.9 \n",
"88757 21.5 34.2 24.7 23.4 \n",
"97354 21.3 33.8 24.1 22.0 \n",
"97494 24.8 30.2 25.2 24.9 \n",
"\n",
" dewpoint_min_temp max_humidity min_humidity mean_humidity \\\n",
"17634 NaN NaN NaN NaN \n",
"18137 16.7 83.0 51.0 79.0 \n",
"18664 21.2 90.0 57.0 90.0 \n",
"20349 20.4 89.0 59.0 79.0 \n",
"25651 22.9 89.0 66.0 87.0 \n",
"26364 22.4 81.0 58.0 70.0 \n",
"27302 23.0 83.0 57.0 82.0 \n",
"27493 19.9 85.0 54.0 81.0 \n",
"27614 20.3 93.0 58.0 93.0 \n",
"28044 23.3 90.0 67.0 90.0 \n",
"35127 18.8 91.0 50.0 91.0 \n",
"36255 21.0 84.0 47.0 81.0 \n",
"36278 22.0 81.0 59.0 81.0 \n",
"36446 20.1 93.0 58.0 90.0 \n",
"61331 22.1 90.0 57.0 88.0 \n",
"62505 21.5 86.0 56.0 86.0 \n",
"62655 20.5 92.0 67.0 91.0 \n",
"62818 21.5 78.0 51.0 78.0 \n",
"62841 22.5 87.0 60.0 85.0 \n",
"69149 19.1 81.0 39.0 81.0 \n",
"69630 21.8 93.0 56.0 87.0 \n",
"78871 21.3 79.0 53.0 69.0 \n",
"79330 17.0 76.0 32.0 64.0 \n",
"80171 20.1 89.0 54.0 89.0 \n",
"88757 20.6 82.0 51.0 82.0 \n",
"97354 20.1 84.0 46.0 84.0 \n",
"97494 21.6 90.0 62.0 89.0 \n",
"\n",
" wind_direction max_wind mean_wind \n",
"17634 336.0 7.2 1.8 \n",
"18137 1.0 10.1 0.4 \n",
"18664 30.0 7.6 1.3 \n",
"20349 205.0 19.2 6.3 \n",
"25651 334.0 6.4 1.4 \n",
"26364 244.0 4.6 1.7 \n",
"27302 137.0 6.0 1.6 \n",
"27493 256.0 9.0 1.8 \n",
"27614 335.0 14.0 0.9 \n",
"28044 248.0 5.3 2.0 \n",
"35127 202.0 14.0 8.2 \n",
"36255 205.0 12.0 5.9 \n",
"36278 168.0 7.8 3.9 \n",
"36446 133.0 24.5 3.5 \n",
"61331 62.0 7.9 0.6 \n",
"62505 35.0 6.8 3.8 \n",
"62655 223.0 11.9 4.0 \n",
"62818 99.0 3.7 2.0 \n",
"62841 80.0 6.7 1.0 \n",
"69149 238.0 10.5 5.4 \n",
"69630 47.0 15.7 7.3 \n",
"78871 237.0 8.7 2.3 \n",
"79330 338.0 9.3 2.3 \n",
"80171 360.0 16.6 9.3 \n",
"88757 222.0 16.6 5.9 \n",
"97354 220.0 17.9 4.3 \n",
"97494 164.0 9.1 1.6 "
],
"text/html": [
"\n",
" <div id=\"df-c7f99937-51e6-421e-8801-dfa553ea4434\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>datetime</th>\n",
" <th>station</th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>17634</th>\n",
" <td>2019-01-05 21:00:00</td>\n",
" <td>A627</td>\n",
" <td>9.4</td>\n",
" <td>1014.0</td>\n",
" <td>1014.0</td>\n",
" <td>1011.7</td>\n",
" <td>344.1</td>\n",
" <td>23.6</td>\n",
" <td>NaN</td>\n",
" <td>30.4</td>\n",
" <td>23.6</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>336.0</td>\n",
" <td>7.2</td>\n",
" <td>1.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18137</th>\n",
" <td>2019-01-26 20:00:00</td>\n",
" <td>A627</td>\n",
" <td>5.8</td>\n",
" <td>1014.4</td>\n",
" <td>1014.8</td>\n",
" <td>1013.2</td>\n",
" <td>840.1</td>\n",
" <td>24.7</td>\n",
" <td>20.7</td>\n",
" <td>32.9</td>\n",
" <td>24.0</td>\n",
" <td>22.8</td>\n",
" <td>16.7</td>\n",
" <td>83.0</td>\n",
" <td>51.0</td>\n",
" <td>79.0</td>\n",
" <td>1.0</td>\n",
" <td>10.1</td>\n",
" <td>0.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18664</th>\n",
" <td>2019-02-17 19:00:00</td>\n",
" <td>A627</td>\n",
" <td>6.4</td>\n",
" <td>1008.2</td>\n",
" <td>1008.8</td>\n",
" <td>1007.1</td>\n",
" <td>167.2</td>\n",
" <td>24.8</td>\n",
" <td>23.1</td>\n",
" <td>31.1</td>\n",
" <td>24.7</td>\n",
" <td>23.6</td>\n",
" <td>21.2</td>\n",
" <td>90.0</td>\n",
" <td>57.0</td>\n",
" <td>90.0</td>\n",
" <td>30.0</td>\n",
" <td>7.6</td>\n",
" <td>1.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20349</th>\n",
" <td>2019-04-29 00:00:00</td>\n",
" <td>A627</td>\n",
" <td>4.6</td>\n",
" <td>1011.2</td>\n",
" <td>1011.3</td>\n",
" <td>1007.0</td>\n",
" <td>NaN</td>\n",
" <td>24.3</td>\n",
" <td>20.4</td>\n",
" <td>30.9</td>\n",
" <td>23.9</td>\n",
" <td>23.2</td>\n",
" <td>20.4</td>\n",
" <td>89.0</td>\n",
" <td>59.0</td>\n",
" <td>79.0</td>\n",
" <td>205.0</td>\n",
" <td>19.2</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25651</th>\n",
" <td>2019-12-05 22:00:00</td>\n",
" <td>A627</td>\n",
" <td>2.6</td>\n",
" <td>1007.6</td>\n",
" <td>1007.6</td>\n",
" <td>1006.0</td>\n",
" <td>NaN</td>\n",
" <td>26.4</td>\n",
" <td>24.0</td>\n",
" <td>30.1</td>\n",
" <td>26.2</td>\n",
" <td>24.4</td>\n",
" <td>22.9</td>\n",
" <td>89.0</td>\n",
" <td>66.0</td>\n",
" <td>87.0</td>\n",
" <td>334.0</td>\n",
" <td>6.4</td>\n",
" <td>1.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26364</th>\n",
" <td>2019-01-04 16:00:00</td>\n",
" <td>A619</td>\n",
" <td>3.2</td>\n",
" <td>1009.3</td>\n",
" <td>1010.4</td>\n",
" <td>1009.3</td>\n",
" <td>1085.0</td>\n",
" <td>29.4</td>\n",
" <td>23.4</td>\n",
" <td>31.7</td>\n",
" <td>27.9</td>\n",
" <td>24.6</td>\n",
" <td>22.4</td>\n",
" <td>81.0</td>\n",
" <td>58.0</td>\n",
" <td>70.0</td>\n",
" <td>244.0</td>\n",
" <td>4.6</td>\n",
" <td>1.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27302</th>\n",
" <td>2019-02-12 18:00:00</td>\n",
" <td>A619</td>\n",
" <td>4.8</td>\n",
" <td>1009.7</td>\n",
" <td>1010.1</td>\n",
" <td>1009.5</td>\n",
" <td>977.9</td>\n",
" <td>26.9</td>\n",
" <td>23.4</td>\n",
" <td>34.0</td>\n",
" <td>26.8</td>\n",
" <td>25.0</td>\n",
" <td>23.0</td>\n",
" <td>83.0</td>\n",
" <td>57.0</td>\n",
" <td>82.0</td>\n",
" <td>137.0</td>\n",
" <td>6.0</td>\n",
" <td>1.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27493</th>\n",
" <td>2019-02-20 17:00:00</td>\n",
" <td>A619</td>\n",
" <td>4.4</td>\n",
" <td>1009.1</td>\n",
" <td>1010.0</td>\n",
" <td>1009.1</td>\n",
" <td>951.0</td>\n",
" <td>27.3</td>\n",
" <td>23.8</td>\n",
" <td>31.1</td>\n",
" <td>24.5</td>\n",
" <td>24.2</td>\n",
" <td>19.9</td>\n",
" <td>85.0</td>\n",
" <td>54.0</td>\n",
" <td>81.0</td>\n",
" <td>256.0</td>\n",
" <td>9.0</td>\n",
" <td>1.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27614</th>\n",
" <td>2019-02-25 18:00:00</td>\n",
" <td>A619</td>\n",
" <td>14.2</td>\n",
" <td>1009.4</td>\n",
" <td>1009.8</td>\n",
" <td>1006.9</td>\n",
" <td>65.2</td>\n",
" <td>24.0</td>\n",
" <td>22.8</td>\n",
" <td>32.0</td>\n",
" <td>23.0</td>\n",
" <td>24.8</td>\n",
" <td>20.3</td>\n",
" <td>93.0</td>\n",
" <td>58.0</td>\n",
" <td>93.0</td>\n",
" <td>335.0</td>\n",
" <td>14.0</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28044</th>\n",
" <td>2019-03-15 16:00:00</td>\n",
" <td>A619</td>\n",
" <td>3.0</td>\n",
" <td>1012.6</td>\n",
" <td>1012.7</td>\n",
" <td>1012.6</td>\n",
" <td>481.3</td>\n",
" <td>25.8</td>\n",
" <td>24.1</td>\n",
" <td>30.5</td>\n",
" <td>25.8</td>\n",
" <td>24.4</td>\n",
" <td>23.3</td>\n",
" <td>90.0</td>\n",
" <td>67.0</td>\n",
" <td>90.0</td>\n",
" <td>248.0</td>\n",
" <td>5.3</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35127</th>\n",
" <td>2019-01-04 20:00:00</td>\n",
" <td>A607</td>\n",
" <td>14.2</td>\n",
" <td>1008.2</td>\n",
" <td>1008.2</td>\n",
" <td>1006.0</td>\n",
" <td>97.6</td>\n",
" <td>22.7</td>\n",
" <td>21.2</td>\n",
" <td>31.7</td>\n",
" <td>22.5</td>\n",
" <td>21.9</td>\n",
" <td>18.8</td>\n",
" <td>91.0</td>\n",
" <td>50.0</td>\n",
" <td>91.0</td>\n",
" <td>202.0</td>\n",
" <td>14.0</td>\n",
" <td>8.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36255</th>\n",
" <td>2019-02-20 20:00:00</td>\n",
" <td>A607</td>\n",
" <td>2.6</td>\n",
" <td>1006.3</td>\n",
" <td>1006.3</td>\n",
" <td>1004.8</td>\n",
" <td>281.1</td>\n",
" <td>26.2</td>\n",
" <td>22.7</td>\n",
" <td>33.9</td>\n",
" <td>26.1</td>\n",
" <td>23.4</td>\n",
" <td>21.0</td>\n",
" <td>84.0</td>\n",
" <td>47.0</td>\n",
" <td>81.0</td>\n",
" <td>205.0</td>\n",
" <td>12.0</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36278</th>\n",
" <td>2019-02-21 19:00:00</td>\n",
" <td>A607</td>\n",
" <td>7.2</td>\n",
" <td>1013.1</td>\n",
" <td>1013.1</td>\n",
" <td>1011.3</td>\n",
" <td>486.1</td>\n",
" <td>26.7</td>\n",
" <td>23.2</td>\n",
" <td>31.6</td>\n",
" <td>26.7</td>\n",
" <td>23.2</td>\n",
" <td>22.0</td>\n",
" <td>81.0</td>\n",
" <td>59.0</td>\n",
" <td>81.0</td>\n",
" <td>168.0</td>\n",
" <td>7.8</td>\n",
" <td>3.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36446</th>\n",
" <td>2019-02-28 19:00:00</td>\n",
" <td>A607</td>\n",
" <td>27.2</td>\n",
" <td>1007.5</td>\n",
" <td>1010.0</td>\n",
" <td>1007.1</td>\n",
" <td>148.0</td>\n",
" <td>24.9</td>\n",
" <td>23.2</td>\n",
" <td>32.4</td>\n",
" <td>21.8</td>\n",
" <td>24.2</td>\n",
" <td>20.1</td>\n",
" <td>93.0</td>\n",
" <td>58.0</td>\n",
" <td>90.0</td>\n",
" <td>133.0</td>\n",
" <td>24.5</td>\n",
" <td>3.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61331</th>\n",
" <td>2019-01-01 19:00:00</td>\n",
" <td>A659</td>\n",
" <td>18.8</td>\n",
" <td>1010.9</td>\n",
" <td>1011.0</td>\n",
" <td>1010.1</td>\n",
" <td>310.8</td>\n",
" <td>25.7</td>\n",
" <td>23.5</td>\n",
" <td>32.5</td>\n",
" <td>24.6</td>\n",
" <td>23.9</td>\n",
" <td>22.1</td>\n",
" <td>90.0</td>\n",
" <td>57.0</td>\n",
" <td>88.0</td>\n",
" <td>62.0</td>\n",
" <td>7.9</td>\n",
" <td>0.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62505</th>\n",
" <td>2019-02-19 17:00:00</td>\n",
" <td>A659</td>\n",
" <td>12.0</td>\n",
" <td>1007.2</td>\n",
" <td>1008.5</td>\n",
" <td>1007.2</td>\n",
" <td>1023.3</td>\n",
" <td>24.8</td>\n",
" <td>22.3</td>\n",
" <td>33.3</td>\n",
" <td>24.7</td>\n",
" <td>24.8</td>\n",
" <td>21.5</td>\n",
" <td>86.0</td>\n",
" <td>56.0</td>\n",
" <td>86.0</td>\n",
" <td>35.0</td>\n",
" <td>6.8</td>\n",
" <td>3.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62655</th>\n",
" <td>2019-02-25 23:00:00</td>\n",
" <td>A659</td>\n",
" <td>10.6</td>\n",
" <td>1009.4</td>\n",
" <td>1009.7</td>\n",
" <td>1005.5</td>\n",
" <td>NaN</td>\n",
" <td>22.1</td>\n",
" <td>20.6</td>\n",
" <td>30.3</td>\n",
" <td>22.1</td>\n",
" <td>25.1</td>\n",
" <td>20.5</td>\n",
" <td>92.0</td>\n",
" <td>67.0</td>\n",
" <td>91.0</td>\n",
" <td>223.0</td>\n",
" <td>11.9</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62818</th>\n",
" <td>2019-03-04 18:00:00</td>\n",
" <td>A659</td>\n",
" <td>2.8</td>\n",
" <td>1012.6</td>\n",
" <td>1012.7</td>\n",
" <td>1012.3</td>\n",
" <td>1251.9</td>\n",
" <td>28.9</td>\n",
" <td>24.6</td>\n",
" <td>33.4</td>\n",
" <td>28.9</td>\n",
" <td>24.7</td>\n",
" <td>21.5</td>\n",
" <td>78.0</td>\n",
" <td>51.0</td>\n",
" <td>78.0</td>\n",
" <td>99.0</td>\n",
" <td>3.7</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62841</th>\n",
" <td>2019-03-05 17:00:00</td>\n",
" <td>A659</td>\n",
" <td>12.2</td>\n",
" <td>1013.3</td>\n",
" <td>1013.9</td>\n",
" <td>1013.3</td>\n",
" <td>838.3</td>\n",
" <td>26.2</td>\n",
" <td>23.5</td>\n",
" <td>32.1</td>\n",
" <td>26.2</td>\n",
" <td>24.8</td>\n",
" <td>22.5</td>\n",
" <td>87.0</td>\n",
" <td>60.0</td>\n",
" <td>85.0</td>\n",
" <td>80.0</td>\n",
" <td>6.7</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69149</th>\n",
" <td>2019-11-23 13:00:00</td>\n",
" <td>A659</td>\n",
" <td>7.0</td>\n",
" <td>1006.7</td>\n",
" <td>1006.7</td>\n",
" <td>1005.1</td>\n",
" <td>1090.7</td>\n",
" <td>23.6</td>\n",
" <td>20.1</td>\n",
" <td>35.5</td>\n",
" <td>23.6</td>\n",
" <td>21.4</td>\n",
" <td>19.1</td>\n",
" <td>81.0</td>\n",
" <td>39.0</td>\n",
" <td>81.0</td>\n",
" <td>238.0</td>\n",
" <td>10.5</td>\n",
" <td>5.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69630</th>\n",
" <td>2019-12-13 14:00:00</td>\n",
" <td>A659</td>\n",
" <td>15.4</td>\n",
" <td>1009.5</td>\n",
" <td>1009.5</td>\n",
" <td>1008.2</td>\n",
" <td>563.6</td>\n",
" <td>24.1</td>\n",
" <td>21.8</td>\n",
" <td>33.1</td>\n",
" <td>23.7</td>\n",
" <td>23.8</td>\n",
" <td>21.8</td>\n",
" <td>93.0</td>\n",
" <td>56.0</td>\n",
" <td>87.0</td>\n",
" <td>47.0</td>\n",
" <td>15.7</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78871</th>\n",
" <td>2019-01-02 17:00:00</td>\n",
" <td>A621</td>\n",
" <td>3.8</td>\n",
" <td>1009.3</td>\n",
" <td>1009.9</td>\n",
" <td>1009.2</td>\n",
" <td>1362.8</td>\n",
" <td>30.3</td>\n",
" <td>23.9</td>\n",
" <td>32.5</td>\n",
" <td>27.8</td>\n",
" <td>24.7</td>\n",
" <td>21.3</td>\n",
" <td>79.0</td>\n",
" <td>53.0</td>\n",
" <td>69.0</td>\n",
" <td>237.0</td>\n",
" <td>8.7</td>\n",
" <td>2.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79330</th>\n",
" <td>2019-01-21 20:00:00</td>\n",
" <td>A621</td>\n",
" <td>14.4</td>\n",
" <td>1008.3</td>\n",
" <td>1008.5</td>\n",
" <td>1007.3</td>\n",
" <td>459.1</td>\n",
" <td>29.3</td>\n",
" <td>21.9</td>\n",
" <td>37.1</td>\n",
" <td>27.4</td>\n",
" <td>23.6</td>\n",
" <td>17.0</td>\n",
" <td>76.0</td>\n",
" <td>32.0</td>\n",
" <td>64.0</td>\n",
" <td>338.0</td>\n",
" <td>9.3</td>\n",
" <td>2.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80171</th>\n",
" <td>2019-02-25 21:00:00</td>\n",
" <td>A621</td>\n",
" <td>12.0</td>\n",
" <td>1007.0</td>\n",
" <td>1007.4</td>\n",
" <td>1004.1</td>\n",
" <td>51.0</td>\n",
" <td>22.9</td>\n",
" <td>21.1</td>\n",
" <td>31.1</td>\n",
" <td>22.9</td>\n",
" <td>21.9</td>\n",
" <td>20.1</td>\n",
" <td>89.0</td>\n",
" <td>54.0</td>\n",
" <td>89.0</td>\n",
" <td>360.0</td>\n",
" <td>16.6</td>\n",
" <td>9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88757</th>\n",
" <td>2019-02-18 16:00:00</td>\n",
" <td>A620</td>\n",
" <td>4.8</td>\n",
" <td>1012.0</td>\n",
" <td>1012.0</td>\n",
" <td>1010.5</td>\n",
" <td>1580.9</td>\n",
" <td>24.7</td>\n",
" <td>21.5</td>\n",
" <td>34.2</td>\n",
" <td>24.7</td>\n",
" <td>23.4</td>\n",
" <td>20.6</td>\n",
" <td>82.0</td>\n",
" <td>51.0</td>\n",
" <td>82.0</td>\n",
" <td>222.0</td>\n",
" <td>16.6</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97354</th>\n",
" <td>2019-02-11 22:00:00</td>\n",
" <td>A601</td>\n",
" <td>2.6</td>\n",
" <td>1008.0</td>\n",
" <td>1008.0</td>\n",
" <td>1005.8</td>\n",
" <td>2.0</td>\n",
" <td>24.2</td>\n",
" <td>21.3</td>\n",
" <td>33.8</td>\n",
" <td>24.1</td>\n",
" <td>22.0</td>\n",
" <td>20.1</td>\n",
" <td>84.0</td>\n",
" <td>46.0</td>\n",
" <td>84.0</td>\n",
" <td>220.0</td>\n",
" <td>17.9</td>\n",
" <td>4.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97494</th>\n",
" <td>2019-02-17 18:00:00</td>\n",
" <td>A601</td>\n",
" <td>13.0</td>\n",
" <td>1004.5</td>\n",
" <td>1005.1</td>\n",
" <td>1004.2</td>\n",
" <td>553.6</td>\n",
" <td>26.7</td>\n",
" <td>24.8</td>\n",
" <td>30.2</td>\n",
" <td>25.2</td>\n",
" <td>24.9</td>\n",
" <td>21.6</td>\n",
" <td>90.0</td>\n",
" <td>62.0</td>\n",
" <td>89.0</td>\n",
" <td>164.0</td>\n",
" <td>9.1</td>\n",
" <td>1.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c7f99937-51e6-421e-8801-dfa553ea4434')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-c7f99937-51e6-421e-8801-dfa553ea4434 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-c7f99937-51e6-421e-8801-dfa553ea4434');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"source": [
"# Utilizando o query\n",
"prec_maior_2_temp_maior_30 = data.query(\"total_precipitation > 2 & max_temp > 30\")\n",
"prec_maior_2_temp_maior_30"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "aeD8ZxNamfUM",
"outputId": "51df4032-d4f4-4825-a848-1b6045c093a2"
},
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" datetime station total_precipitation mean_pressure \\\n",
"17634 2019-01-05 21:00:00 A627 9.4 1014.0 \n",
"18137 2019-01-26 20:00:00 A627 5.8 1014.4 \n",
"18664 2019-02-17 19:00:00 A627 6.4 1008.2 \n",
"20349 2019-04-29 00:00:00 A627 4.6 1011.2 \n",
"25651 2019-12-05 22:00:00 A627 2.6 1007.6 \n",
"26364 2019-01-04 16:00:00 A619 3.2 1009.3 \n",
"27302 2019-02-12 18:00:00 A619 4.8 1009.7 \n",
"27493 2019-02-20 17:00:00 A619 4.4 1009.1 \n",
"27614 2019-02-25 18:00:00 A619 14.2 1009.4 \n",
"28044 2019-03-15 16:00:00 A619 3.0 1012.6 \n",
"35127 2019-01-04 20:00:00 A607 14.2 1008.2 \n",
"36255 2019-02-20 20:00:00 A607 2.6 1006.3 \n",
"36278 2019-02-21 19:00:00 A607 7.2 1013.1 \n",
"36446 2019-02-28 19:00:00 A607 27.2 1007.5 \n",
"61331 2019-01-01 19:00:00 A659 18.8 1010.9 \n",
"62505 2019-02-19 17:00:00 A659 12.0 1007.2 \n",
"62655 2019-02-25 23:00:00 A659 10.6 1009.4 \n",
"62818 2019-03-04 18:00:00 A659 2.8 1012.6 \n",
"62841 2019-03-05 17:00:00 A659 12.2 1013.3 \n",
"69149 2019-11-23 13:00:00 A659 7.0 1006.7 \n",
"69630 2019-12-13 14:00:00 A659 15.4 1009.5 \n",
"78871 2019-01-02 17:00:00 A621 3.8 1009.3 \n",
"79330 2019-01-21 20:00:00 A621 14.4 1008.3 \n",
"80171 2019-02-25 21:00:00 A621 12.0 1007.0 \n",
"88757 2019-02-18 16:00:00 A620 4.8 1012.0 \n",
"97354 2019-02-11 22:00:00 A601 2.6 1008.0 \n",
"97494 2019-02-17 18:00:00 A601 13.0 1004.5 \n",
"\n",
" max_pressure min_pressure global_radiation wetbulb_temp \\\n",
"17634 1014.0 1011.7 344.1 23.6 \n",
"18137 1014.8 1013.2 840.1 24.7 \n",
"18664 1008.8 1007.1 167.2 24.8 \n",
"20349 1011.3 1007.0 NaN 24.3 \n",
"25651 1007.6 1006.0 NaN 26.4 \n",
"26364 1010.4 1009.3 1085.0 29.4 \n",
"27302 1010.1 1009.5 977.9 26.9 \n",
"27493 1010.0 1009.1 951.0 27.3 \n",
"27614 1009.8 1006.9 65.2 24.0 \n",
"28044 1012.7 1012.6 481.3 25.8 \n",
"35127 1008.2 1006.0 97.6 22.7 \n",
"36255 1006.3 1004.8 281.1 26.2 \n",
"36278 1013.1 1011.3 486.1 26.7 \n",
"36446 1010.0 1007.1 148.0 24.9 \n",
"61331 1011.0 1010.1 310.8 25.7 \n",
"62505 1008.5 1007.2 1023.3 24.8 \n",
"62655 1009.7 1005.5 NaN 22.1 \n",
"62818 1012.7 1012.3 1251.9 28.9 \n",
"62841 1013.9 1013.3 838.3 26.2 \n",
"69149 1006.7 1005.1 1090.7 23.6 \n",
"69630 1009.5 1008.2 563.6 24.1 \n",
"78871 1009.9 1009.2 1362.8 30.3 \n",
"79330 1008.5 1007.3 459.1 29.3 \n",
"80171 1007.4 1004.1 51.0 22.9 \n",
"88757 1012.0 1010.5 1580.9 24.7 \n",
"97354 1008.0 1005.8 2.0 24.2 \n",
"97494 1005.1 1004.2 553.6 26.7 \n",
"\n",
" dewpoint_temp max_temp min_temp dewpoint_max_temp \\\n",
"17634 NaN 30.4 23.6 NaN \n",
"18137 20.7 32.9 24.0 22.8 \n",
"18664 23.1 31.1 24.7 23.6 \n",
"20349 20.4 30.9 23.9 23.2 \n",
"25651 24.0 30.1 26.2 24.4 \n",
"26364 23.4 31.7 27.9 24.6 \n",
"27302 23.4 34.0 26.8 25.0 \n",
"27493 23.8 31.1 24.5 24.2 \n",
"27614 22.8 32.0 23.0 24.8 \n",
"28044 24.1 30.5 25.8 24.4 \n",
"35127 21.2 31.7 22.5 21.9 \n",
"36255 22.7 33.9 26.1 23.4 \n",
"36278 23.2 31.6 26.7 23.2 \n",
"36446 23.2 32.4 21.8 24.2 \n",
"61331 23.5 32.5 24.6 23.9 \n",
"62505 22.3 33.3 24.7 24.8 \n",
"62655 20.6 30.3 22.1 25.1 \n",
"62818 24.6 33.4 28.9 24.7 \n",
"62841 23.5 32.1 26.2 24.8 \n",
"69149 20.1 35.5 23.6 21.4 \n",
"69630 21.8 33.1 23.7 23.8 \n",
"78871 23.9 32.5 27.8 24.7 \n",
"79330 21.9 37.1 27.4 23.6 \n",
"80171 21.1 31.1 22.9 21.9 \n",
"88757 21.5 34.2 24.7 23.4 \n",
"97354 21.3 33.8 24.1 22.0 \n",
"97494 24.8 30.2 25.2 24.9 \n",
"\n",
" dewpoint_min_temp max_humidity min_humidity mean_humidity \\\n",
"17634 NaN NaN NaN NaN \n",
"18137 16.7 83.0 51.0 79.0 \n",
"18664 21.2 90.0 57.0 90.0 \n",
"20349 20.4 89.0 59.0 79.0 \n",
"25651 22.9 89.0 66.0 87.0 \n",
"26364 22.4 81.0 58.0 70.0 \n",
"27302 23.0 83.0 57.0 82.0 \n",
"27493 19.9 85.0 54.0 81.0 \n",
"27614 20.3 93.0 58.0 93.0 \n",
"28044 23.3 90.0 67.0 90.0 \n",
"35127 18.8 91.0 50.0 91.0 \n",
"36255 21.0 84.0 47.0 81.0 \n",
"36278 22.0 81.0 59.0 81.0 \n",
"36446 20.1 93.0 58.0 90.0 \n",
"61331 22.1 90.0 57.0 88.0 \n",
"62505 21.5 86.0 56.0 86.0 \n",
"62655 20.5 92.0 67.0 91.0 \n",
"62818 21.5 78.0 51.0 78.0 \n",
"62841 22.5 87.0 60.0 85.0 \n",
"69149 19.1 81.0 39.0 81.0 \n",
"69630 21.8 93.0 56.0 87.0 \n",
"78871 21.3 79.0 53.0 69.0 \n",
"79330 17.0 76.0 32.0 64.0 \n",
"80171 20.1 89.0 54.0 89.0 \n",
"88757 20.6 82.0 51.0 82.0 \n",
"97354 20.1 84.0 46.0 84.0 \n",
"97494 21.6 90.0 62.0 89.0 \n",
"\n",
" wind_direction max_wind mean_wind \n",
"17634 336.0 7.2 1.8 \n",
"18137 1.0 10.1 0.4 \n",
"18664 30.0 7.6 1.3 \n",
"20349 205.0 19.2 6.3 \n",
"25651 334.0 6.4 1.4 \n",
"26364 244.0 4.6 1.7 \n",
"27302 137.0 6.0 1.6 \n",
"27493 256.0 9.0 1.8 \n",
"27614 335.0 14.0 0.9 \n",
"28044 248.0 5.3 2.0 \n",
"35127 202.0 14.0 8.2 \n",
"36255 205.0 12.0 5.9 \n",
"36278 168.0 7.8 3.9 \n",
"36446 133.0 24.5 3.5 \n",
"61331 62.0 7.9 0.6 \n",
"62505 35.0 6.8 3.8 \n",
"62655 223.0 11.9 4.0 \n",
"62818 99.0 3.7 2.0 \n",
"62841 80.0 6.7 1.0 \n",
"69149 238.0 10.5 5.4 \n",
"69630 47.0 15.7 7.3 \n",
"78871 237.0 8.7 2.3 \n",
"79330 338.0 9.3 2.3 \n",
"80171 360.0 16.6 9.3 \n",
"88757 222.0 16.6 5.9 \n",
"97354 220.0 17.9 4.3 \n",
"97494 164.0 9.1 1.6 "
],
"text/html": [
"\n",
" <div id=\"df-733f356b-8a75-4a80-88e9-2f9a0b592716\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>datetime</th>\n",
" <th>station</th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>17634</th>\n",
" <td>2019-01-05 21:00:00</td>\n",
" <td>A627</td>\n",
" <td>9.4</td>\n",
" <td>1014.0</td>\n",
" <td>1014.0</td>\n",
" <td>1011.7</td>\n",
" <td>344.1</td>\n",
" <td>23.6</td>\n",
" <td>NaN</td>\n",
" <td>30.4</td>\n",
" <td>23.6</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>336.0</td>\n",
" <td>7.2</td>\n",
" <td>1.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18137</th>\n",
" <td>2019-01-26 20:00:00</td>\n",
" <td>A627</td>\n",
" <td>5.8</td>\n",
" <td>1014.4</td>\n",
" <td>1014.8</td>\n",
" <td>1013.2</td>\n",
" <td>840.1</td>\n",
" <td>24.7</td>\n",
" <td>20.7</td>\n",
" <td>32.9</td>\n",
" <td>24.0</td>\n",
" <td>22.8</td>\n",
" <td>16.7</td>\n",
" <td>83.0</td>\n",
" <td>51.0</td>\n",
" <td>79.0</td>\n",
" <td>1.0</td>\n",
" <td>10.1</td>\n",
" <td>0.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18664</th>\n",
" <td>2019-02-17 19:00:00</td>\n",
" <td>A627</td>\n",
" <td>6.4</td>\n",
" <td>1008.2</td>\n",
" <td>1008.8</td>\n",
" <td>1007.1</td>\n",
" <td>167.2</td>\n",
" <td>24.8</td>\n",
" <td>23.1</td>\n",
" <td>31.1</td>\n",
" <td>24.7</td>\n",
" <td>23.6</td>\n",
" <td>21.2</td>\n",
" <td>90.0</td>\n",
" <td>57.0</td>\n",
" <td>90.0</td>\n",
" <td>30.0</td>\n",
" <td>7.6</td>\n",
" <td>1.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20349</th>\n",
" <td>2019-04-29 00:00:00</td>\n",
" <td>A627</td>\n",
" <td>4.6</td>\n",
" <td>1011.2</td>\n",
" <td>1011.3</td>\n",
" <td>1007.0</td>\n",
" <td>NaN</td>\n",
" <td>24.3</td>\n",
" <td>20.4</td>\n",
" <td>30.9</td>\n",
" <td>23.9</td>\n",
" <td>23.2</td>\n",
" <td>20.4</td>\n",
" <td>89.0</td>\n",
" <td>59.0</td>\n",
" <td>79.0</td>\n",
" <td>205.0</td>\n",
" <td>19.2</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25651</th>\n",
" <td>2019-12-05 22:00:00</td>\n",
" <td>A627</td>\n",
" <td>2.6</td>\n",
" <td>1007.6</td>\n",
" <td>1007.6</td>\n",
" <td>1006.0</td>\n",
" <td>NaN</td>\n",
" <td>26.4</td>\n",
" <td>24.0</td>\n",
" <td>30.1</td>\n",
" <td>26.2</td>\n",
" <td>24.4</td>\n",
" <td>22.9</td>\n",
" <td>89.0</td>\n",
" <td>66.0</td>\n",
" <td>87.0</td>\n",
" <td>334.0</td>\n",
" <td>6.4</td>\n",
" <td>1.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26364</th>\n",
" <td>2019-01-04 16:00:00</td>\n",
" <td>A619</td>\n",
" <td>3.2</td>\n",
" <td>1009.3</td>\n",
" <td>1010.4</td>\n",
" <td>1009.3</td>\n",
" <td>1085.0</td>\n",
" <td>29.4</td>\n",
" <td>23.4</td>\n",
" <td>31.7</td>\n",
" <td>27.9</td>\n",
" <td>24.6</td>\n",
" <td>22.4</td>\n",
" <td>81.0</td>\n",
" <td>58.0</td>\n",
" <td>70.0</td>\n",
" <td>244.0</td>\n",
" <td>4.6</td>\n",
" <td>1.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27302</th>\n",
" <td>2019-02-12 18:00:00</td>\n",
" <td>A619</td>\n",
" <td>4.8</td>\n",
" <td>1009.7</td>\n",
" <td>1010.1</td>\n",
" <td>1009.5</td>\n",
" <td>977.9</td>\n",
" <td>26.9</td>\n",
" <td>23.4</td>\n",
" <td>34.0</td>\n",
" <td>26.8</td>\n",
" <td>25.0</td>\n",
" <td>23.0</td>\n",
" <td>83.0</td>\n",
" <td>57.0</td>\n",
" <td>82.0</td>\n",
" <td>137.0</td>\n",
" <td>6.0</td>\n",
" <td>1.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27493</th>\n",
" <td>2019-02-20 17:00:00</td>\n",
" <td>A619</td>\n",
" <td>4.4</td>\n",
" <td>1009.1</td>\n",
" <td>1010.0</td>\n",
" <td>1009.1</td>\n",
" <td>951.0</td>\n",
" <td>27.3</td>\n",
" <td>23.8</td>\n",
" <td>31.1</td>\n",
" <td>24.5</td>\n",
" <td>24.2</td>\n",
" <td>19.9</td>\n",
" <td>85.0</td>\n",
" <td>54.0</td>\n",
" <td>81.0</td>\n",
" <td>256.0</td>\n",
" <td>9.0</td>\n",
" <td>1.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27614</th>\n",
" <td>2019-02-25 18:00:00</td>\n",
" <td>A619</td>\n",
" <td>14.2</td>\n",
" <td>1009.4</td>\n",
" <td>1009.8</td>\n",
" <td>1006.9</td>\n",
" <td>65.2</td>\n",
" <td>24.0</td>\n",
" <td>22.8</td>\n",
" <td>32.0</td>\n",
" <td>23.0</td>\n",
" <td>24.8</td>\n",
" <td>20.3</td>\n",
" <td>93.0</td>\n",
" <td>58.0</td>\n",
" <td>93.0</td>\n",
" <td>335.0</td>\n",
" <td>14.0</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28044</th>\n",
" <td>2019-03-15 16:00:00</td>\n",
" <td>A619</td>\n",
" <td>3.0</td>\n",
" <td>1012.6</td>\n",
" <td>1012.7</td>\n",
" <td>1012.6</td>\n",
" <td>481.3</td>\n",
" <td>25.8</td>\n",
" <td>24.1</td>\n",
" <td>30.5</td>\n",
" <td>25.8</td>\n",
" <td>24.4</td>\n",
" <td>23.3</td>\n",
" <td>90.0</td>\n",
" <td>67.0</td>\n",
" <td>90.0</td>\n",
" <td>248.0</td>\n",
" <td>5.3</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35127</th>\n",
" <td>2019-01-04 20:00:00</td>\n",
" <td>A607</td>\n",
" <td>14.2</td>\n",
" <td>1008.2</td>\n",
" <td>1008.2</td>\n",
" <td>1006.0</td>\n",
" <td>97.6</td>\n",
" <td>22.7</td>\n",
" <td>21.2</td>\n",
" <td>31.7</td>\n",
" <td>22.5</td>\n",
" <td>21.9</td>\n",
" <td>18.8</td>\n",
" <td>91.0</td>\n",
" <td>50.0</td>\n",
" <td>91.0</td>\n",
" <td>202.0</td>\n",
" <td>14.0</td>\n",
" <td>8.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36255</th>\n",
" <td>2019-02-20 20:00:00</td>\n",
" <td>A607</td>\n",
" <td>2.6</td>\n",
" <td>1006.3</td>\n",
" <td>1006.3</td>\n",
" <td>1004.8</td>\n",
" <td>281.1</td>\n",
" <td>26.2</td>\n",
" <td>22.7</td>\n",
" <td>33.9</td>\n",
" <td>26.1</td>\n",
" <td>23.4</td>\n",
" <td>21.0</td>\n",
" <td>84.0</td>\n",
" <td>47.0</td>\n",
" <td>81.0</td>\n",
" <td>205.0</td>\n",
" <td>12.0</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36278</th>\n",
" <td>2019-02-21 19:00:00</td>\n",
" <td>A607</td>\n",
" <td>7.2</td>\n",
" <td>1013.1</td>\n",
" <td>1013.1</td>\n",
" <td>1011.3</td>\n",
" <td>486.1</td>\n",
" <td>26.7</td>\n",
" <td>23.2</td>\n",
" <td>31.6</td>\n",
" <td>26.7</td>\n",
" <td>23.2</td>\n",
" <td>22.0</td>\n",
" <td>81.0</td>\n",
" <td>59.0</td>\n",
" <td>81.0</td>\n",
" <td>168.0</td>\n",
" <td>7.8</td>\n",
" <td>3.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36446</th>\n",
" <td>2019-02-28 19:00:00</td>\n",
" <td>A607</td>\n",
" <td>27.2</td>\n",
" <td>1007.5</td>\n",
" <td>1010.0</td>\n",
" <td>1007.1</td>\n",
" <td>148.0</td>\n",
" <td>24.9</td>\n",
" <td>23.2</td>\n",
" <td>32.4</td>\n",
" <td>21.8</td>\n",
" <td>24.2</td>\n",
" <td>20.1</td>\n",
" <td>93.0</td>\n",
" <td>58.0</td>\n",
" <td>90.0</td>\n",
" <td>133.0</td>\n",
" <td>24.5</td>\n",
" <td>3.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61331</th>\n",
" <td>2019-01-01 19:00:00</td>\n",
" <td>A659</td>\n",
" <td>18.8</td>\n",
" <td>1010.9</td>\n",
" <td>1011.0</td>\n",
" <td>1010.1</td>\n",
" <td>310.8</td>\n",
" <td>25.7</td>\n",
" <td>23.5</td>\n",
" <td>32.5</td>\n",
" <td>24.6</td>\n",
" <td>23.9</td>\n",
" <td>22.1</td>\n",
" <td>90.0</td>\n",
" <td>57.0</td>\n",
" <td>88.0</td>\n",
" <td>62.0</td>\n",
" <td>7.9</td>\n",
" <td>0.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62505</th>\n",
" <td>2019-02-19 17:00:00</td>\n",
" <td>A659</td>\n",
" <td>12.0</td>\n",
" <td>1007.2</td>\n",
" <td>1008.5</td>\n",
" <td>1007.2</td>\n",
" <td>1023.3</td>\n",
" <td>24.8</td>\n",
" <td>22.3</td>\n",
" <td>33.3</td>\n",
" <td>24.7</td>\n",
" <td>24.8</td>\n",
" <td>21.5</td>\n",
" <td>86.0</td>\n",
" <td>56.0</td>\n",
" <td>86.0</td>\n",
" <td>35.0</td>\n",
" <td>6.8</td>\n",
" <td>3.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62655</th>\n",
" <td>2019-02-25 23:00:00</td>\n",
" <td>A659</td>\n",
" <td>10.6</td>\n",
" <td>1009.4</td>\n",
" <td>1009.7</td>\n",
" <td>1005.5</td>\n",
" <td>NaN</td>\n",
" <td>22.1</td>\n",
" <td>20.6</td>\n",
" <td>30.3</td>\n",
" <td>22.1</td>\n",
" <td>25.1</td>\n",
" <td>20.5</td>\n",
" <td>92.0</td>\n",
" <td>67.0</td>\n",
" <td>91.0</td>\n",
" <td>223.0</td>\n",
" <td>11.9</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62818</th>\n",
" <td>2019-03-04 18:00:00</td>\n",
" <td>A659</td>\n",
" <td>2.8</td>\n",
" <td>1012.6</td>\n",
" <td>1012.7</td>\n",
" <td>1012.3</td>\n",
" <td>1251.9</td>\n",
" <td>28.9</td>\n",
" <td>24.6</td>\n",
" <td>33.4</td>\n",
" <td>28.9</td>\n",
" <td>24.7</td>\n",
" <td>21.5</td>\n",
" <td>78.0</td>\n",
" <td>51.0</td>\n",
" <td>78.0</td>\n",
" <td>99.0</td>\n",
" <td>3.7</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62841</th>\n",
" <td>2019-03-05 17:00:00</td>\n",
" <td>A659</td>\n",
" <td>12.2</td>\n",
" <td>1013.3</td>\n",
" <td>1013.9</td>\n",
" <td>1013.3</td>\n",
" <td>838.3</td>\n",
" <td>26.2</td>\n",
" <td>23.5</td>\n",
" <td>32.1</td>\n",
" <td>26.2</td>\n",
" <td>24.8</td>\n",
" <td>22.5</td>\n",
" <td>87.0</td>\n",
" <td>60.0</td>\n",
" <td>85.0</td>\n",
" <td>80.0</td>\n",
" <td>6.7</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69149</th>\n",
" <td>2019-11-23 13:00:00</td>\n",
" <td>A659</td>\n",
" <td>7.0</td>\n",
" <td>1006.7</td>\n",
" <td>1006.7</td>\n",
" <td>1005.1</td>\n",
" <td>1090.7</td>\n",
" <td>23.6</td>\n",
" <td>20.1</td>\n",
" <td>35.5</td>\n",
" <td>23.6</td>\n",
" <td>21.4</td>\n",
" <td>19.1</td>\n",
" <td>81.0</td>\n",
" <td>39.0</td>\n",
" <td>81.0</td>\n",
" <td>238.0</td>\n",
" <td>10.5</td>\n",
" <td>5.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69630</th>\n",
" <td>2019-12-13 14:00:00</td>\n",
" <td>A659</td>\n",
" <td>15.4</td>\n",
" <td>1009.5</td>\n",
" <td>1009.5</td>\n",
" <td>1008.2</td>\n",
" <td>563.6</td>\n",
" <td>24.1</td>\n",
" <td>21.8</td>\n",
" <td>33.1</td>\n",
" <td>23.7</td>\n",
" <td>23.8</td>\n",
" <td>21.8</td>\n",
" <td>93.0</td>\n",
" <td>56.0</td>\n",
" <td>87.0</td>\n",
" <td>47.0</td>\n",
" <td>15.7</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78871</th>\n",
" <td>2019-01-02 17:00:00</td>\n",
" <td>A621</td>\n",
" <td>3.8</td>\n",
" <td>1009.3</td>\n",
" <td>1009.9</td>\n",
" <td>1009.2</td>\n",
" <td>1362.8</td>\n",
" <td>30.3</td>\n",
" <td>23.9</td>\n",
" <td>32.5</td>\n",
" <td>27.8</td>\n",
" <td>24.7</td>\n",
" <td>21.3</td>\n",
" <td>79.0</td>\n",
" <td>53.0</td>\n",
" <td>69.0</td>\n",
" <td>237.0</td>\n",
" <td>8.7</td>\n",
" <td>2.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79330</th>\n",
" <td>2019-01-21 20:00:00</td>\n",
" <td>A621</td>\n",
" <td>14.4</td>\n",
" <td>1008.3</td>\n",
" <td>1008.5</td>\n",
" <td>1007.3</td>\n",
" <td>459.1</td>\n",
" <td>29.3</td>\n",
" <td>21.9</td>\n",
" <td>37.1</td>\n",
" <td>27.4</td>\n",
" <td>23.6</td>\n",
" <td>17.0</td>\n",
" <td>76.0</td>\n",
" <td>32.0</td>\n",
" <td>64.0</td>\n",
" <td>338.0</td>\n",
" <td>9.3</td>\n",
" <td>2.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80171</th>\n",
" <td>2019-02-25 21:00:00</td>\n",
" <td>A621</td>\n",
" <td>12.0</td>\n",
" <td>1007.0</td>\n",
" <td>1007.4</td>\n",
" <td>1004.1</td>\n",
" <td>51.0</td>\n",
" <td>22.9</td>\n",
" <td>21.1</td>\n",
" <td>31.1</td>\n",
" <td>22.9</td>\n",
" <td>21.9</td>\n",
" <td>20.1</td>\n",
" <td>89.0</td>\n",
" <td>54.0</td>\n",
" <td>89.0</td>\n",
" <td>360.0</td>\n",
" <td>16.6</td>\n",
" <td>9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88757</th>\n",
" <td>2019-02-18 16:00:00</td>\n",
" <td>A620</td>\n",
" <td>4.8</td>\n",
" <td>1012.0</td>\n",
" <td>1012.0</td>\n",
" <td>1010.5</td>\n",
" <td>1580.9</td>\n",
" <td>24.7</td>\n",
" <td>21.5</td>\n",
" <td>34.2</td>\n",
" <td>24.7</td>\n",
" <td>23.4</td>\n",
" <td>20.6</td>\n",
" <td>82.0</td>\n",
" <td>51.0</td>\n",
" <td>82.0</td>\n",
" <td>222.0</td>\n",
" <td>16.6</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97354</th>\n",
" <td>2019-02-11 22:00:00</td>\n",
" <td>A601</td>\n",
" <td>2.6</td>\n",
" <td>1008.0</td>\n",
" <td>1008.0</td>\n",
" <td>1005.8</td>\n",
" <td>2.0</td>\n",
" <td>24.2</td>\n",
" <td>21.3</td>\n",
" <td>33.8</td>\n",
" <td>24.1</td>\n",
" <td>22.0</td>\n",
" <td>20.1</td>\n",
" <td>84.0</td>\n",
" <td>46.0</td>\n",
" <td>84.0</td>\n",
" <td>220.0</td>\n",
" <td>17.9</td>\n",
" <td>4.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97494</th>\n",
" <td>2019-02-17 18:00:00</td>\n",
" <td>A601</td>\n",
" <td>13.0</td>\n",
" <td>1004.5</td>\n",
" <td>1005.1</td>\n",
" <td>1004.2</td>\n",
" <td>553.6</td>\n",
" <td>26.7</td>\n",
" <td>24.8</td>\n",
" <td>30.2</td>\n",
" <td>25.2</td>\n",
" <td>24.9</td>\n",
" <td>21.6</td>\n",
" <td>90.0</td>\n",
" <td>62.0</td>\n",
" <td>89.0</td>\n",
" <td>164.0</td>\n",
" <td>9.1</td>\n",
" <td>1.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-733f356b-8a75-4a80-88e9-2f9a0b592716')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-733f356b-8a75-4a80-88e9-2f9a0b592716 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-733f356b-8a75-4a80-88e9-2f9a0b592716');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 5: Em qual estação meteorológica foi registrado a maior temperatura mínima?\n",
"\n"
],
"metadata": {
"id": "2KfntOi9mxHr"
}
},
{
"cell_type": "code",
"source": [
"maior_temp_min = data['min_temp'].max()\n",
"data.loc[data['min_temp'] == maior_temp_min, 'station']"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "wdQIY_iRmvIv",
"outputId": "1335ed09-0d71-4952-98f2-c1d6fcaca44e"
},
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"86239 A621\n",
"Name: station, dtype: object"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 6: Qual o rank do 90 percentil do precipitação de todas as estações?\n",
"\n"
],
"metadata": {
"id": "NLCile-pm0x8"
}
},
{
"cell_type": "code",
"source": [
"grupos_estacoes = data.groupby('station')\n",
"\n",
"def p90(n):\n",
" return np.nanpercentile(n, 90)\n",
"\n",
"grupos_estacoes.agg({'total_precipitation': ['sum', 'mean', p90]})"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"id": "coQC7Il-my2D",
"outputId": "fb9be12d-e373-40b5-f4ab-d7d7f38c106f"
},
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation \n",
" sum mean p90\n",
"station \n",
"A601 439.0 0.292083 0.0\n",
"A602 1679.4 0.191800 0.0\n",
"A606 1004.2 0.114661 0.0\n",
"A607 1067.8 0.121909 0.0\n",
"A608 1537.0 0.175477 0.0\n",
"A619 1874.2 0.213999 0.2\n",
"A620 752.2 0.085877 0.0\n",
"A621 1418.6 0.161959 0.0\n",
"A627 1186.2 0.135426 0.0\n",
"A652 1757.2 0.200662 0.0\n",
"A659 1721.2 0.196506 0.0\n",
"A667 1651.4 0.189164 0.0"
],
"text/html": [
"\n",
" <div id=\"df-a6619d99-a7ff-4cd7-bedf-d51cd9b396ca\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">total_precipitation</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>sum</th>\n",
" <th>mean</th>\n",
" <th>p90</th>\n",
" </tr>\n",
" <tr>\n",
" <th>station</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>A601</th>\n",
" <td>439.0</td>\n",
" <td>0.292083</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A602</th>\n",
" <td>1679.4</td>\n",
" <td>0.191800</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A606</th>\n",
" <td>1004.2</td>\n",
" <td>0.114661</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A607</th>\n",
" <td>1067.8</td>\n",
" <td>0.121909</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A608</th>\n",
" <td>1537.0</td>\n",
" <td>0.175477</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A619</th>\n",
" <td>1874.2</td>\n",
" <td>0.213999</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A620</th>\n",
" <td>752.2</td>\n",
" <td>0.085877</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A621</th>\n",
" <td>1418.6</td>\n",
" <td>0.161959</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A627</th>\n",
" <td>1186.2</td>\n",
" <td>0.135426</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A652</th>\n",
" <td>1757.2</td>\n",
" <td>0.200662</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A659</th>\n",
" <td>1721.2</td>\n",
" <td>0.196506</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A667</th>\n",
" <td>1651.4</td>\n",
" <td>0.189164</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a6619d99-a7ff-4cd7-bedf-d51cd9b396ca')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-a6619d99-a7ff-4cd7-bedf-d51cd9b396ca button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-a6619d99-a7ff-4cd7-bedf-d51cd9b396ca');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"grupos_estacoes = data.groupby('station')\n",
"\n",
"def p90(n):\n",
" return np.nanpercentile(n, 90)\n",
"\n",
"def p99(n):\n",
" return np.nanpercentile(n, 99)\n",
"\n",
"grupos_estacoes.agg({'total_precipitation': [p90, p99]})"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"id": "X-Ss57hum2XL",
"outputId": "6c5e27d2-1167-4577-adfb-c5d11948b1ba"
},
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation \n",
" p90 p99\n",
"station \n",
"A601 0.0 7.800\n",
"A602 0.0 4.400\n",
"A606 0.0 2.286\n",
"A607 0.0 2.600\n",
"A608 0.0 4.200\n",
"A619 0.2 5.000\n",
"A620 0.0 2.200\n",
"A621 0.0 3.800\n",
"A627 0.0 3.200\n",
"A652 0.0 4.088\n",
"A659 0.0 4.400\n",
"A667 0.0 4.600"
],
"text/html": [
"\n",
" <div id=\"df-56e5eb3c-353b-4e3a-8583-6803556d8f90\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"2\" halign=\"left\">total_precipitation</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>p90</th>\n",
" <th>p99</th>\n",
" </tr>\n",
" <tr>\n",
" <th>station</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>A601</th>\n",
" <td>0.0</td>\n",
" <td>7.800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A602</th>\n",
" <td>0.0</td>\n",
" <td>4.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A606</th>\n",
" <td>0.0</td>\n",
" <td>2.286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A607</th>\n",
" <td>0.0</td>\n",
" <td>2.600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A608</th>\n",
" <td>0.0</td>\n",
" <td>4.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A619</th>\n",
" <td>0.2</td>\n",
" <td>5.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A620</th>\n",
" <td>0.0</td>\n",
" <td>2.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A621</th>\n",
" <td>0.0</td>\n",
" <td>3.800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A627</th>\n",
" <td>0.0</td>\n",
" <td>3.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A652</th>\n",
" <td>0.0</td>\n",
" <td>4.088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A659</th>\n",
" <td>0.0</td>\n",
" <td>4.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A667</th>\n",
" <td>0.0</td>\n",
" <td>4.600</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-56e5eb3c-353b-4e3a-8583-6803556d8f90')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-56e5eb3c-353b-4e3a-8583-6803556d8f90 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-56e5eb3c-353b-4e3a-8583-6803556d8f90');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"grupos_estacoes = data.groupby('station')\n",
"\n",
"def p90(n):\n",
" return np.nanpercentile(n, 90)\n",
"\n",
"grupos_estacoes.agg({'total_precipitation': p90}).sort_values('total_precipitation', ascending=False)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 456
},
"id": "eedJRuK9m8km",
"outputId": "202a2625-3e56-4555-e975-20f7988f23bb"
},
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation\n",
"station \n",
"A619 0.2\n",
"A601 0.0\n",
"A602 0.0\n",
"A606 0.0\n",
"A607 0.0\n",
"A608 0.0\n",
"A620 0.0\n",
"A621 0.0\n",
"A627 0.0\n",
"A652 0.0\n",
"A659 0.0\n",
"A667 0.0"
],
"text/html": [
"\n",
" <div id=\"df-b5ba0cd1-1cd8-4fdb-9a16-c25b37f9c6ea\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_precipitation</th>\n",
" </tr>\n",
" <tr>\n",
" <th>station</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>A619</th>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A601</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A602</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A606</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A607</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A608</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A620</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A621</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A627</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A652</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A659</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A667</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b5ba0cd1-1cd8-4fdb-9a16-c25b37f9c6ea')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b5ba0cd1-1cd8-4fdb-9a16-c25b37f9c6ea button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b5ba0cd1-1cd8-4fdb-9a16-c25b37f9c6ea');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "markdown",
"source": [
"## Questão 7: É possível notar um padrão de sazonalidade ou tendência na estação com o maior acumulado de precipitação?\n",
"\n"
],
"metadata": {
"id": "jO6vmy3nnAnb"
}
},
{
"cell_type": "code",
"source": [
"grupo_estacao_maior_prec = data.groupby('station')\n",
"agregacao_estacao_maior_prec = grupo_estacao_maior_prec.agg({'total_precipitation': 'sum'})\n",
"maior_prec_acumumulada = agregacao_estacao_maior_prec.max()['total_precipitation']\n",
"estacao_maior_prec_acumumulada = agregacao_estacao_maior_prec.query(f\"total_precipitation == {maior_prec_acumumulada}\")\n",
"estacao_maior_prec_acumumulada"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 112
},
"id": "6sBlreKym_Ci",
"outputId": "71649505-157d-468b-88f2-7c0325f3824c"
},
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" total_precipitation\n",
"station \n",
"A619 1874.2"
],
"text/html": [
"\n",
" <div id=\"df-dec67b26-7fe4-4358-8086-49e20c8649d1\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_precipitation</th>\n",
" </tr>\n",
" <tr>\n",
" <th>station</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>A619</th>\n",
" <td>1874.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-dec67b26-7fe4-4358-8086-49e20c8649d1')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-dec67b26-7fe4-4358-8086-49e20c8649d1 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-dec67b26-7fe4-4358-8086-49e20c8649d1');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"estacao_A619 = data.query(\"station == 'A619'\").reset_index()\n",
"estacao_A619"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 834
},
"id": "ypXaSYkpnQ7O",
"outputId": "df515f09-2d06-442d-e054-3b99af22e0fe"
},
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" index datetime station total_precipitation mean_pressure \\\n",
"0 26277 2019-01-01 01:00:00 A619 0.0 1013.2 \n",
"1 26278 2019-01-01 02:00:00 A619 0.0 1013.1 \n",
"2 26279 2019-01-01 03:00:00 A619 0.0 1012.3 \n",
"3 26280 2019-01-01 04:00:00 A619 0.0 1011.8 \n",
"4 26281 2019-01-01 05:00:00 A619 0.0 1011.5 \n",
"... ... ... ... ... ... \n",
"8754 35031 2019-12-31 19:00:00 A619 0.0 1007.6 \n",
"8755 35032 2019-12-31 20:00:00 A619 0.0 1007.3 \n",
"8756 35033 2019-12-31 21:00:00 A619 0.0 1007.6 \n",
"8757 35034 2019-12-31 22:00:00 A619 0.0 1007.7 \n",
"8758 35035 2019-12-31 23:00:00 A619 0.0 1008.1 \n",
"\n",
" max_pressure min_pressure global_radiation wetbulb_temp \\\n",
"0 1013.3 1013.2 NaN 24.5 \n",
"1 1013.2 1013.1 NaN 24.3 \n",
"2 1013.1 1012.3 NaN 23.9 \n",
"3 1012.3 1011.8 NaN 23.6 \n",
"4 1011.8 1011.5 NaN 23.1 \n",
"... ... ... ... ... \n",
"8754 1007.9 1007.5 2291.0 29.8 \n",
"8755 1007.7 1007.2 1327.4 29.2 \n",
"8756 1007.6 1007.3 353.1 27.6 \n",
"8757 1007.7 1007.4 37.5 25.6 \n",
"8758 1008.1 1007.7 NaN 24.6 \n",
"\n",
" dewpoint_temp max_temp min_temp dewpoint_max_temp dewpoint_min_temp \\\n",
"0 23.0 24.9 24.3 23.3 22.9 \n",
"1 22.7 24.5 24.2 23.0 22.6 \n",
"2 22.4 24.4 23.9 22.7 22.3 \n",
"3 21.8 23.9 23.6 22.4 21.8 \n",
"4 21.6 23.6 23.0 21.9 21.6 \n",
"... ... ... ... ... ... \n",
"8754 20.7 30.1 29.4 21.7 20.5 \n",
"8755 20.6 29.8 28.9 21.2 20.1 \n",
"8756 21.0 29.2 27.6 21.2 20.2 \n",
"8757 21.5 27.8 25.6 21.5 20.6 \n",
"8758 21.3 25.6 24.6 21.7 21.3 \n",
"\n",
" max_humidity min_humidity mean_humidity wind_direction max_wind \\\n",
"0 92.0 91.0 92.0 261.0 3.4 \n",
"1 92.0 90.0 90.0 264.0 3.4 \n",
"2 91.0 90.0 91.0 264.0 3.9 \n",
"3 92.0 90.0 90.0 263.0 4.5 \n",
"4 92.0 90.0 92.0 258.0 3.0 \n",
"... ... ... ... ... ... \n",
"8754 61.0 58.0 58.0 39.0 6.5 \n",
"8755 62.0 57.0 60.0 22.0 6.4 \n",
"8756 68.0 59.0 67.0 269.0 5.0 \n",
"8757 78.0 66.0 78.0 259.0 2.9 \n",
"8758 82.0 78.0 82.0 255.0 3.5 \n",
"\n",
" mean_wind \n",
"0 2.0 \n",
"1 1.7 \n",
"2 2.4 \n",
"3 2.1 \n",
"4 0.9 \n",
"... ... \n",
"8754 3.3 \n",
"8755 1.9 \n",
"8756 0.9 \n",
"8757 1.9 \n",
"8758 2.0 \n",
"\n",
"[8759 rows x 20 columns]"
],
"text/html": [
"\n",
" <div id=\"df-ddea8ed6-26de-47cf-8cfa-2817d263f785\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>datetime</th>\n",
" <th>station</th>\n",
" <th>total_precipitation</th>\n",
" <th>mean_pressure</th>\n",
" <th>max_pressure</th>\n",
" <th>min_pressure</th>\n",
" <th>global_radiation</th>\n",
" <th>wetbulb_temp</th>\n",
" <th>dewpoint_temp</th>\n",
" <th>max_temp</th>\n",
" <th>min_temp</th>\n",
" <th>dewpoint_max_temp</th>\n",
" <th>dewpoint_min_temp</th>\n",
" <th>max_humidity</th>\n",
" <th>min_humidity</th>\n",
" <th>mean_humidity</th>\n",
" <th>wind_direction</th>\n",
" <th>max_wind</th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>26277</td>\n",
" <td>2019-01-01 01:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1013.2</td>\n",
" <td>1013.3</td>\n",
" <td>1013.2</td>\n",
" <td>NaN</td>\n",
" <td>24.5</td>\n",
" <td>23.0</td>\n",
" <td>24.9</td>\n",
" <td>24.3</td>\n",
" <td>23.3</td>\n",
" <td>22.9</td>\n",
" <td>92.0</td>\n",
" <td>91.0</td>\n",
" <td>92.0</td>\n",
" <td>261.0</td>\n",
" <td>3.4</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>26278</td>\n",
" <td>2019-01-01 02:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1013.1</td>\n",
" <td>1013.2</td>\n",
" <td>1013.1</td>\n",
" <td>NaN</td>\n",
" <td>24.3</td>\n",
" <td>22.7</td>\n",
" <td>24.5</td>\n",
" <td>24.2</td>\n",
" <td>23.0</td>\n",
" <td>22.6</td>\n",
" <td>92.0</td>\n",
" <td>90.0</td>\n",
" <td>90.0</td>\n",
" <td>264.0</td>\n",
" <td>3.4</td>\n",
" <td>1.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26279</td>\n",
" <td>2019-01-01 03:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1012.3</td>\n",
" <td>1013.1</td>\n",
" <td>1012.3</td>\n",
" <td>NaN</td>\n",
" <td>23.9</td>\n",
" <td>22.4</td>\n",
" <td>24.4</td>\n",
" <td>23.9</td>\n",
" <td>22.7</td>\n",
" <td>22.3</td>\n",
" <td>91.0</td>\n",
" <td>90.0</td>\n",
" <td>91.0</td>\n",
" <td>264.0</td>\n",
" <td>3.9</td>\n",
" <td>2.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>26280</td>\n",
" <td>2019-01-01 04:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1011.8</td>\n",
" <td>1012.3</td>\n",
" <td>1011.8</td>\n",
" <td>NaN</td>\n",
" <td>23.6</td>\n",
" <td>21.8</td>\n",
" <td>23.9</td>\n",
" <td>23.6</td>\n",
" <td>22.4</td>\n",
" <td>21.8</td>\n",
" <td>92.0</td>\n",
" <td>90.0</td>\n",
" <td>90.0</td>\n",
" <td>263.0</td>\n",
" <td>4.5</td>\n",
" <td>2.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>26281</td>\n",
" <td>2019-01-01 05:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1011.5</td>\n",
" <td>1011.8</td>\n",
" <td>1011.5</td>\n",
" <td>NaN</td>\n",
" <td>23.1</td>\n",
" <td>21.6</td>\n",
" <td>23.6</td>\n",
" <td>23.0</td>\n",
" <td>21.9</td>\n",
" <td>21.6</td>\n",
" <td>92.0</td>\n",
" <td>90.0</td>\n",
" <td>92.0</td>\n",
" <td>258.0</td>\n",
" <td>3.0</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8754</th>\n",
" <td>35031</td>\n",
" <td>2019-12-31 19:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1007.6</td>\n",
" <td>1007.9</td>\n",
" <td>1007.5</td>\n",
" <td>2291.0</td>\n",
" <td>29.8</td>\n",
" <td>20.7</td>\n",
" <td>30.1</td>\n",
" <td>29.4</td>\n",
" <td>21.7</td>\n",
" <td>20.5</td>\n",
" <td>61.0</td>\n",
" <td>58.0</td>\n",
" <td>58.0</td>\n",
" <td>39.0</td>\n",
" <td>6.5</td>\n",
" <td>3.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8755</th>\n",
" <td>35032</td>\n",
" <td>2019-12-31 20:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1007.3</td>\n",
" <td>1007.7</td>\n",
" <td>1007.2</td>\n",
" <td>1327.4</td>\n",
" <td>29.2</td>\n",
" <td>20.6</td>\n",
" <td>29.8</td>\n",
" <td>28.9</td>\n",
" <td>21.2</td>\n",
" <td>20.1</td>\n",
" <td>62.0</td>\n",
" <td>57.0</td>\n",
" <td>60.0</td>\n",
" <td>22.0</td>\n",
" <td>6.4</td>\n",
" <td>1.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8756</th>\n",
" <td>35033</td>\n",
" <td>2019-12-31 21:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1007.6</td>\n",
" <td>1007.6</td>\n",
" <td>1007.3</td>\n",
" <td>353.1</td>\n",
" <td>27.6</td>\n",
" <td>21.0</td>\n",
" <td>29.2</td>\n",
" <td>27.6</td>\n",
" <td>21.2</td>\n",
" <td>20.2</td>\n",
" <td>68.0</td>\n",
" <td>59.0</td>\n",
" <td>67.0</td>\n",
" <td>269.0</td>\n",
" <td>5.0</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8757</th>\n",
" <td>35034</td>\n",
" <td>2019-12-31 22:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1007.7</td>\n",
" <td>1007.7</td>\n",
" <td>1007.4</td>\n",
" <td>37.5</td>\n",
" <td>25.6</td>\n",
" <td>21.5</td>\n",
" <td>27.8</td>\n",
" <td>25.6</td>\n",
" <td>21.5</td>\n",
" <td>20.6</td>\n",
" <td>78.0</td>\n",
" <td>66.0</td>\n",
" <td>78.0</td>\n",
" <td>259.0</td>\n",
" <td>2.9</td>\n",
" <td>1.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8758</th>\n",
" <td>35035</td>\n",
" <td>2019-12-31 23:00:00</td>\n",
" <td>A619</td>\n",
" <td>0.0</td>\n",
" <td>1008.1</td>\n",
" <td>1008.1</td>\n",
" <td>1007.7</td>\n",
" <td>NaN</td>\n",
" <td>24.6</td>\n",
" <td>21.3</td>\n",
" <td>25.6</td>\n",
" <td>24.6</td>\n",
" <td>21.7</td>\n",
" <td>21.3</td>\n",
" <td>82.0</td>\n",
" <td>78.0</td>\n",
" <td>82.0</td>\n",
" <td>255.0</td>\n",
" <td>3.5</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8759 rows × 20 columns</p>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ddea8ed6-26de-47cf-8cfa-2817d263f785')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-ddea8ed6-26de-47cf-8cfa-2817d263f785 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-ddea8ed6-26de-47cf-8cfa-2817d263f785');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"source": [
"(\n",
" p9.ggplot(estacao_A619, p9.aes(x='datetime', y='total_precipitation'))\n",
" + p9.geom_line(color='blue')\n",
" + p9.geom_smooth()\n",
")\n",
"\n",
" # + geom_line()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 465
},
"id": "jFeZHBxRnV5_",
"outputId": "08c1da13-e91c-4b20-f67b-0f4fa926dd4c"
},
"execution_count": 16,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAGuCAYAAAB7i7dxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABY70lEQVR4nO3deXhTZfo38G+SJl3SlLa2oIhsoyCoKCAiOy6D14hYFRBERUBBR4EZ3EbEDVHRER0VZLHvCC4DKBbGEVQEFZGdH7iAIojQFgUssXubNm1y3j9C0qTZT06SJz3fz3X1apaT59znzlnuPGfTSJIkgYiIiKiF08Y7ACIiIqJYYNFDREREqsCih4iIiFSBRQ8RERGpAoseIiIiUgUWPURERKQKLHqIiIhIFVj0EBERkSokxTuAaDKbzYq3qdFokJqaCovFApGu62gwGGC1WuMdBgBxcwSIlScnUfPFXIVHxHwB4uZMxHyJmitAvHxFO1c5OTmKtwmwpydsWq0WaWlp0GrFSl1ycnK8Q3ARNUeAWHlyEjVfzFV4RMwXIG7ORMyXqLkCxMuXyLkKJLGiJSIiIpKJRQ8RERGpAoseIiIiUgUWPURERKQKLHqIiIhIFVj0EBERkSqw6CEiIiJVYNFDREREqsCih4iIiFSBRQ8RERGpAoseIiIiUgUWPURERKQKLHqIiIhIFZLiHQAAvPLKK9i8eTOSkprCef3115GbmwsAOHXqFObPn48DBw6gVatWGD9+PAYPHhyvcImIiCgBCVH0AEBeXh7uuOMOn+/NmzcPHTt2xKxZs3Do0CE888wz6NChAzp06BDjKH2z24Ht2/UYMKAh3qEQERGRH8Lv3jp+/DgOHTqE22+/HcnJybjoootw2WWX4Ysvvoh3aC6rViXjhhtaoa4u3pEQERGRP8L09Kxfvx7r169HTk4ORowYgT//+c8AgKKiIuTm5iI9Pd01bKdOnfD999/HK1QvlZUaAIAkxTkQIiIi8kuIomfEiBGYNGkSjEYjfvjhB7zwwgswGo3o378/6urqPAoeADAajbBYLF7tmM1mmM1m13OtVus6LkgpOp3O479zPM7X3F6OKY1G4xFTPPnKkShEypOTqPlirsIjYr4AcXMmYr5EzRUgXr5EzlUgQhQ9f/rTn1yPe/TogeHDh2Pr1q3o378/UlJSUFNT4zF8bW0tUlNTvdopKChAfn6+6/mECRMwderUqMSckZHhepyW5viflZUFH2HFjMFgiN/IfXDPkUhEy5OTiPlirsIjar4AMXMmar5EzBUgZr5EzZU/QhQ9zWk0Gkin9xV16NABp06dQnV1tavH58iRIz4PYh45ciSGDBnieq7ValFWVqZobDqdDhkZGaisrITNZgMA1NYmA0hDWVlZ3I7rMRqNXsVhvPjKkShEypOTqPlirsIjYr4AcXMmYr5EzRUgXr6inausrCzF2wQEKXq2bNmCXr16ISUlBT/99BPWrVuHKVOmAADatm2Lc889F++++y4mTpyIn3/+Gbt27cI///lPr3ZycnKQk5Pjem42m6M249psNlfbdrvd7bWojC4oSZKEW0jdcyQKEfPkJFq+mKvwiJwvQLyciZwv0XIFiJsvEXMViBBFz9q1a/H666/DbrcjJycHt912m8d1eB566CG89tpruPXWW5GZmYl7771XmNPViYiIKDEIUfQ8//zzAd/Pzc3FnDlzYhQNERERtUTCX6eHiIiISAkseoiIiEgVWPQQERGRKrDoISIiIlVg0aMg3oaCiIhIXCx6FKDRxDsCIiIiCoZFDxEREakCix4iIiJSBRY9REREpAosehTAA5iJiIjEx6JHQTygmYiISFwseoiIiEgVWPQQERGRKrDoISIiIlVg0UNERESqwKJHQTyLi4iISFwsehTAs7aIiIjEx6KHiIiIVIFFDxEREakCix4iIiJSBRY9REREpAoseoiIiEgVWPQQERGRKrDoISIiIlVg0UNERESqwKKHiIiIVIFFjwJ4+wkiIiLxseghIiIiVUiKdwDRZDAYkJycrGibmtM32jIajZBOd/GkpjpqR5PJhLQ0RUcXsqSkJJhMpviMvBlfORKFSHlyEjVfzFV4RMwXIG7ORMyXqLkCxMuXyLkKpEUXPVarFVarVdE2dTodDAYDampqYLPZAAB1dSkA9KiqqsLpl2LOZDKhqqoqPiNvxleORCFSnpxEzRdzFR4R8wWImzMR8yVqrgDx8hXtXCndYeHE3VtERESkCix6iIiISBVY9BAREZEqsOghIiIiVWDRQ0RERKrAooeIiIhUgUUPERERqQKLHiIiIlIFFj1ERESkCix6FJRAV+ImIiJSHRY9Cjh9CxIiIiISGIseIiIiUgUWPURERKQKLHoUwGN5iIiIxMeiR0E8toeIiEhcLHqIiIhIFVj0EBERkSqw6CEiIiJVYNFDREREqsCih4iIiFSBRQ8RERGpAoseBfF6PUREROJi0aMAXp+HiIhIfCx6iIiISBVY9BAREZEqsOghIiIiVWDRQ0RERKqQFO8AmqusrMRf//pXnHXWWZg3bx4AoKioCPPnz0dhYSHatGmDKVOm4OKLL45zpERERJRIhOvpWbp0Kc455xzX88bGRsyZMweXXXYZVqxYgbFjx2Lu3LkoLy+PX5BERESUcIQqevbv34/jx4/j6quvdr22b98+1NfXY9SoUdDr9Rg0aBDat2+PrVu3xjFSIiIiSjTCFD0NDQ1YsmQJ7rnnHmjcLnxTXFyMjh07QqttCrVz584oKiqKR5g+8aKERERE4hPmmJ6CggJcfPHF6NSpE44cOeJ63WKxwGg0egxrNBpRUlLi1YbZbIbZbHY912q1yM3NVTROnU7n8d85HgBIStLB7eWY0mg0HjHFk68ciUKkPDmJmi/mKjwi5gsQN2ci5kvUXAHi5UvkXAUiRNFz/PhxfP7553j11Ve93ktNTUVNTY3HazU1NUhNTfUatqCgAPn5+a7nEyZMwNSpU5UPGEBGRobrcVqa439WVpbrcTwYDIb4jdwH9xyJRLQ8OYmYL+YqPKLmCxAzZ6LmS8RcAWLmS9Rc+SNE0XPgwAGUlZXhnnvuAQBYrVZYrVaMHz8e9957L4qKimC32109KkePHsXgwYO92hk5ciSGDBnieq7ValFWVqZorDqdDhkZGaisrITNZgMA1NYmA0hDaWkZ6usVHV3IjEajV3EYL75yJAqR8uQkar6Yq/CImC9A3JyJmC9RcwWIl69o5yorK0vxNgFBip6BAweiV69erudff/01vvzySzzxxBMwmUwwGAxYvXo18vLysHPnThQVFWHAgAFe7eTk5CAnJ8f13Gw2R23GtdlsrrYlye72WlRGF5QkScItpO45EoWIeXISLV/MVXhEzhcgXs5EzpdouQLEzZeIuQpEiKInOTkZycnJrudGoxE6nc5V6T322GNYsGABVq5cidatW2PmzJnIzMyMU7RERESUiIQoepq76qqrcNVVV7med+zY0XWhQiIiIiI5hDllnYiIiCiaWPQQERGRKrDoISIiIlVg0UNERESqwKKHiIiIVIFFDxEREakCix4iIiJSBRY9REREpAosehQkSfGOgIiIiPxh0aMAjSbeERAREVEwLHoUwB4eIiIi8bHoISIiIlVg0UNERESqwKKHiIiIVIFFDxEREakCix4iIiJSBRY9REREpAoseoiIiEgVWPQQERGRKrDoISIiIlVg0aMo3o+CiIhIVCx6FMB7bxEREYmPRQ8RERGpAoseIiIiUgUWPURERKQKsooei8WCRx99FF26dEFaWhp0Op3XHxEREZFIkuR86L777sPy5ctxyy23oHv37jAYDErHRURERKQoWUXPRx99hHnz5mHq1KlKx5OQJCneERAREVEwsooenU6HLl26KB2L4gwGA5KTkxVtU3P6/HSj0QjpdLWTkuLYS5ieng6TSdHRhSwpKQmmeI28GV85EoVIeXISNV/MVXhEzBcgbs5EzJeouQLEy5fIuQpEVtHz17/+Fe+88w6GDRumdDyKslqtsFqtirap0+lgMBhQU1MDm80GAKirSwGgR3V1NYD4fPkmkwlVVVVxGXdzvnIkCpHy5CRqvpir8IiYL0DcnImYL1FzBYiXr2jnSukOCydZRU9aWhq+/vpr9O/fH1dffTUyMzM93tdoNJgxY4YS8REREREpQlbR849//AMAUFxcjB07dni9r9aiJ4F6+IiIiFRHVtFjt9uVjiOh8TYURERE4uPFCYmIiEgVZPX0AEBNTQ2WLVuGLVu2oLS0FNnZ2Rg0aBDuuOMOGI1GJWMkIiIiipisnp5jx46hR48emD59Og4ePAitVouDBw9i+vTpuPjii3Hs2DGl4yQiIiKKiKyi5/777wcA/Pjjj9i7dy8++eQT7N27Fz/88AM0Gg0eeOABRYMkIiIiipSsomfDhg147rnn0LVrV4/Xu3btijlz5uCzzz5TJDgiIiIipcgqehobG5GamurzvdTUVOEu6kSUyGbPTkNubk68wyAiSniyip4BAwbgmWeeQUVFhcfrFRUVePbZZzFgwABFgiMiYO3a6FyZlIhIbWSdvfXSSy9h8ODBOOecc3DllVeiTZs2KCkpweeffw69Xo8333xT6TiJiIiIIiKrp+fCCy/E999/j7vuugvHjx/HF198gePHj2Py5Mn47rvvcOGFFyodJxEREVFEZF+np127dnj55ZeVjIWIiIgoanhFZgXx3ltERETiCrmnp0ePHli+fDkuvPBCXHTRRdAEuOGURqPBd999p0iAiYD33iIiIhJfyEVP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lb1tiHuOlGvP8Vju9EaSp6Y2EJX5yl++JKlp/golNvf2IqFErqJF6XlLCSLnCxAvZyLnS7RcAf7zFe84RcxVICEXPUePHo1aECUlJfj444+h1+sxadIk1+ujRo3CzTffjMceewwLFizAypUr0bp1a8ycOROZmZlRiydc27bp4x2CInggNhERtWRCHMjcunVr/O9///P7fseOHTFv3rwYRhSeNWuS4x1ChBKn2hGhMOOFEYmIElNERc/hw4dx6NAh1NV5H1tx0003RdK0anGDGho15YmnrBMRKUNW0VNZWYkbb7wRmzZtAtB0zIHGbUuUSPv4KP6uvbYVzGYtdu0K7aA8EXp8RMS8EBH5J+vihP/4xz9w8uRJfP3115AkCWvWrMGmTZtw5513olOnTtixY4fScVJUxb8nYfduPY4eTazrPcSKnNtQEBGRN1lFz6effopZs2ahb9++AIC2bdti8ODBeOONN5CXl4eXXnpJ0SApNtS0y4iIiNRHVtFTUlKCc845BzqdDkajEX/88YfrvWuvvRaffvqpYgESuePuGyIikktW0XPOOee4bvdw3nnneZx5tX37dqSkpCgTXYLp3v2MeIdAREREfsgqev785z9j48aNAIAZM2Zg8eLF6N27N/r164cnn3wS48ePVzTIRMKeiMS2c2cSHn00vpd1jwTnPyIi/2SdvfXCCy+gtrYWAHD77bcjPT0dH3zwASwWCxYsWIC7775b0SCJYuXRR9Px/fdJeO45sS6PT0REkZNV9KSlpXncKuLGG2/EjTfeqFhQiUySeEBwNLEng4iI5JK1e0un02HXrl0+39uzZ0/C3WpeSZFulLlRJyIiig5ZRY8UYMvc2NjIoodaNH7HRESJKeTdWydPnsTx48ddzw8ePIikJM+P19XV4c0330SHDh2UizDBRLpB5K4xigQLMiIi/0IuepYsWYLZs2dDo9FAo9FgwoQJXsNIkgSdToeFCxcqGWNC4UaHiIhITCEXPRMmTMDQoUMhSRKuvPJKvP766+jevbvHMAaDAV26dMEZZ/B6NYkoEQq2RIhRaez9IyJSRshFT4cOHVy7rb788kv06tULJpMpaoElKjVulOMhnoWAyEVIRYWywc2fn4pzzrHhhhusirZLRBQPsk5ZHzJkCADghx9+wJYtW1BaWors7GwMHDgQF1xwgaIBJppELnpE3pg3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3nlIS0vDiBEjUFZWhqKiIlxzzTVIT0/HBRdc4GrD3bJly9CjRw+kpKTg7LPPxqxZs2Cz2RTIIhGJhD09RORl7dq1mDJlCiZMmICxY8diz549GD16tMcwhYWFGD9+PP70pz/BarVixYoVGDx4ML7//nt06dIFd911F3799VcsX74cX3zxBQAgIyMDAHDkyBH0798fF154IZYtWwatVotnn30WV111FQ4ePIjk5GRs374d/fr1w7Rp0zBu3DgAQPfu3f3G/M0338BsNmPevHmoqKjA9OnTMXnyZBQVFWH8+PF44IEHMHfuXNx0000oLi5Geno6AODll1/Gww8/jBkzZuCll17CgQMHXEXP888/H430ElG8SEREzfTt21caNGiQx2uPP/64BEBaunSp1/A2m01qaGiQunbtKs2cOdP1+pNPPikZjUav4cePHy917txZslgsrtdKSkqk9PR06fXXX3e9BkB68cUXvT7f/PUhQ4ZIRqNROnXqlOu1Bx54QAIgLVq0yPXavn37JADSf//7X0mSJKmyslJKT0/3iFmSJGnRokVSamqqZDabvcZNRImLu7eIyIPNZsOePXtw4403erw+atQoj+cHDhzAjTfeiDZt2kCn00Gv1+PgwYM4dOhQ0HF89tlnuP7665GUlITGxkY0NjYiKysLPXv2xO7du2XFfckllyAnJ8f1vEuXLgCAq6++2uu1Y8eOAQC2bduG6upqjB492hVHY2Mjrr76algsFuzfv19WLEQkJu7eIiIPp06dQmNjI1q3bu3xeps2bVyPq6qqMGzYMOTm5uLll19Ghw4dkJKSgrvuugt1dXVBx2E2m/HKK6/glVde8XrPYDDIijszM9NnO+6vO19zxmg2mwEAvXr18tmmszgiopaBRQ8RecjNzUVSUhJKSko8Xv/9999dj7dv345ff/0Va9euxcUXX+x6vaKiAu3atQs6juzsbAwfPhz33nuv13smkymC6MOTnZ0NAFi9ejXOOeccr/c7deoUs1iIKPpY9BCRB51Oh169emHNmjWYMWOG6/UPPvjA9dhisQDw7JXZtm0bCgsLccEFF7heMxgMqK+v9xrH1Vdfjf3796Nnz57Q6XR+Y9Hr9SH1HMnVr18/pKWl4ddff/XanUdELQ+LHiLyMmvWLOTl5WHixImus7feeecd1/uXX3450tPTcd999+GRRx7Bb7/9hieffBJnn322RzvdunVDY2MjXn31VfTv3x8ZGRno2rUrZs+ejT59+uCaa67BlClT0KZNG5w8eRJfffUVBg0ahFtuucX1+Q8//BCDBg2C0WhE165dFe0JyszMxNNPP42HH34Yv/76K4YOHQqdTocjR47gww8/REFBAdLS0hQbHxHFFw9kJiIv119/PRYvXozPP/8cN9xwAz777DO89957rvfbtGmDVatWoaSkBHl5eXjllVewZMkSnHvuuR7tjBgxAvfeey/mzp2Lvn374u677wYAnHvuudi1axfOOOMM3HvvvbjmmmvwyCOPoKamBj169HB9/vXXX4fdbsdf/vIX9OnTB3v27FF8Wh944AEsXboUX375JUaOHInRo0fjjTfeQJ8+fWQfX0REYtJIkiTFOwgiIiKiaGNPDxEREakCix4iIiJSBRY9REREpAoseoiIiEgVWPQQERGRKrDoISIiIlVg0UNERESqwKKHiIiIVIFFDxEREakCix4iIiJSBRY9REREpAr/H/10UJac4t0YAAAAAElFTkSuQmCC\n"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<ggplot: (8794233731091)>"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "markdown",
"source": [
"# Questões a serem respondidas após hand-on"
],
"metadata": {
"id": "Zr42N6xg3PVA"
}
},
{
"cell_type": "markdown",
"source": [
"## E1: Qual a média do total de precipitação em cada mês?"
],
"metadata": {
"id": "IRTIV7hx3RWN"
}
},
{
"cell_type": "code",
"source": [
"total_prec_mensal = data.set_index('datetime')[['total_precipitation']].groupby(pd.Grouper(freq='M')).mean().sort_index().reset_index()\n",
"total_prec_mensal"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 425
},
"id": "Ioj6fX4D2-nW",
"outputId": "d60e1d8d-d487-4cb8-d2cf-fcfa6e8f931e"
},
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" datetime total_precipitation\n",
"0 2019-01-31 0.104890\n",
"1 2019-02-28 0.333573\n",
"2 2019-03-31 0.280754\n",
"3 2019-04-30 0.224444\n",
"4 2019-05-31 0.258592\n",
"5 2019-06-30 0.057980\n",
"6 2019-07-31 0.046188\n",
"7 2019-08-31 0.093780\n",
"8 2019-09-30 0.131667\n",
"9 2019-10-31 0.066879\n",
"10 2019-11-30 0.217426\n",
"11 2019-12-31 0.163262"
],
"text/html": [
"\n",
" <div id=\"df-869edf9f-e16f-4833-971c-6c22146fdd2a\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>datetime</th>\n",
" <th>total_precipitation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2019-01-31</td>\n",
" <td>0.104890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2019-02-28</td>\n",
" <td>0.333573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2019-03-31</td>\n",
" <td>0.280754</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2019-04-30</td>\n",
" <td>0.224444</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2019-05-31</td>\n",
" <td>0.258592</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2019-06-30</td>\n",
" <td>0.057980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2019-07-31</td>\n",
" <td>0.046188</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2019-08-31</td>\n",
" <td>0.093780</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2019-09-30</td>\n",
" <td>0.131667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2019-10-31</td>\n",
" <td>0.066879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2019-11-30</td>\n",
" <td>0.217426</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2019-12-31</td>\n",
" <td>0.163262</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-869edf9f-e16f-4833-971c-6c22146fdd2a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-869edf9f-e16f-4833-971c-6c22146fdd2a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-869edf9f-e16f-4833-971c-6c22146fdd2a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "code",
"source": [
"(\n",
" p9.ggplot(total_prec_mensal, p9.aes(x='datetime', y='total_precipitation'))\n",
" + p9.geom_bar(stat='identity')\n",
" + p9.geom_smooth()\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 503
},
"id": "wv7YfiNp4If7",
"outputId": "900a2c50-b271-446f-fd66-33b73c2cbc30"
},
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.9/dist-packages/plotnine/stats/smoothers.py:321: PlotnineWarning: Confidence intervals are not yet implemented for lowess smoothings.\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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N3766Sc8fvwYGRkZ2L17N3r37l1pz7GifzeLVMqlDxITEzFp0iQYGRkVO1fA0KFDMXz4cMTFxeGbb75BXFwc7O3tMWXKlGL/OL711lsl1hkYGAgHBweEhYVh8+bNyMzMhIODA0aOHFminf7duXPn8N133yE1NRVubm6YOXOm+Hn4mzdvYsGCBcXub29vj2+//bbC16ekOQUEBODixYvIzs6GpaUl2rZti7Fjx8LCwqLC56TEeQUFBeHUqVPIycmBlZUVOnfujNGjR8PExOSl67t58yY2bdoknofm/fffFw/se/LkCSZPnlziZ4qKT1WYGQCEhYUhICAAW7duhaHh6zco6/s1VkRJc5PDe6Lc5vWq9Un5nv+88sxszZo1OHnyJGrUqFFsnUVbfgVBwPfff49ffvkFWq0WnTt3xtSpU195Hhq5/jv5KryWExERESkeL31AREREisdCQ0RERIrHQkNERESKx0JDREREisdCQ0RERIrHQkNERESKx0JDREREisdCQ0RERIrHQkNERESKx0JDRDp59uwZVCoVtm7dWuqfCQ0NxRdffKHzY37yyScICwsrsVylUmHFihU6r5eIlI+FhogqTXkLzZIlS15YaMLDw197gUIiqtpef7U3IiKZ69ixo9QRiEhi3EJDRKUSGBiIRo0awczMDL1790ZMTEyx27dt24auXbvCxsYG1tbW8Pb2RkREhHj7J598giVLliArKwsqlQoqlQre3t7i7bdv34avry9q1qwJc3NzDBgwAPfu3RNvV6lUAIAPP/xQ/PnQ0FDxtud3OXl7e2PgwIHYtWsXmjZtCjMzMwwaNAipqamIj49Hv379YGFhAQ8PD3Edz9u6dStatmwJExMT1K9fHwsWLIBWq9XDFImoonALDRG91pEjR+Dv749x48ZhxIgRuHz5MoYNG1bsPnFxcRg7dixcXFyQl5eHXbt2oXv37rhx4wZcXV0xadIk/PHHH9i5cydOnjwJALCysgIA3L9/H507d0aLFi2wdetWGBgY4PPPP0fv3r1x584d1KhRA+Hh4ejUqROmT5+OUaNGAQCaN2/+0sxXr15FcnIyVqxYgbS0NMyYMQOTJ09GfHw8xo4dizlz5mDZsmV4++23kZCQAAsLCwDAqlWr8NFHH2HWrFlYuXIlbt++LRaaL7/8siLGS0T6IBARvUaHDh2Ebt26FVu2cOFCAYAQFBRU4v5arVbIz88X3NzchHnz5onLFy9eLJibm5e4/9ixY4XGjRsLOTk54rLExETBwsJCWL9+vbgMgPDVV1+V+Pm/L+/Ro4dgbm4uJCUlicvmzJkjABA2bNggLrt586YAQPjxxx8FQRCE9PR0wcLColhmQRCEDRs2CKampkJycnKJxyYieeAuJyJ6Ja1Wi8uXL2PIkCHFlg8dOrTY97dv38aQIUPg4OAAtVoNIyMj3LlzB9HR0a99jODgYLz11lswNDREQUEBCgoKYG1tjdatW+PSpUs65X7jjTdga2srfu/q6goA6NOnT4llDx48AACEhYUhMzMTw4YNE3MUFBSgT58+yMnJQWRkpE5ZiKjicZcTEb1SUlISCgoKYG9vX2y5g4OD+HVGRgZ8fHxgZ2eHVatWwcnJCSYmJpg0aRI0Gs1rHyM5ORmrV6/G6tWrS9xmbGysU+5atWq9cD3PLy9aVpQxOTkZANCmTZsXrrOo+BCR/LDQENEr2dnZwdDQEImJicWWP3nyRPw6PDwcf/zxB44cOYJWrVqJy9PS0tCgQYPXPoaNjQ0GDBiAadOmlbjN0tKyHOnLxsbGBgBw4MABNGzYsMTtzs7OlZaFiMqGhYaIXkmtVqNNmzY4ePAgZs2aJS7ft2+f+HVOTg6A4ltTwsLCEBcXBw8PD3GZsbExcnNzSzxGnz59EBkZidatW0OtVr80i5GRUam2+OiqU6dOMDMzwx9//FFiFxsRyRsLDRG91oIFC+Dr64vx48eLn3Lavn27eHvHjh1hYWGB9957D3PnzsWff/6JxYsXo379+sXW4+7ujoKCAqxZswadO3eGlZUV3NzcsGTJErRr1w79+vWDv78/HBwc8PjxY5w+fRrdunXDyJEjxZ//6aef0K1bN5ibm8PNzU2vW3Bq1aqFTz/9FB999BH++OMPeHt7Q61W4/79+/jpp5+wf/9+mJmZ6e3xiEh/eFAwEb3WW2+9hY0bN+LXX3/F4MGDERwcjB9++EG83cHBAXv37kViYiJ8fX2xevVqbNq0CU2aNCm2nkGDBmHatGlYtmwZOnTogClTpgAAmjRpgoiICNSuXRvTpk1Dv379MHfuXGRlZaFly5biz69fvx6FhYV488030a5dO1y+fFnvz3XOnDkICgrCqVOn4Ofnh2HDhmHz5s1o166dzsfzEFHFUwmCIEgdgoiIiKg8uIWGiIiIFI+FhoiIiBSPhYaIiIgUj4WGiIiIFI+FhoiIiBSPhYaIiIgUj4WGiIiIFI+FhoiIiBSPhYaIiIgUj4WGiIiIFI+FhoiIiBTv/wFG64fjId+VrwAAAABJRU5ErkJggg==\n"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<ggplot: (8794232279071)>"
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "markdown",
"source": [
"## E2: Qual a média do vento em em cadas estação do ano para cada estação meteorológica?"
],
"metadata": {
"id": "PbNcErjcSh1U"
}
},
{
"cell_type": "code",
"source": [
"summer_filter = (data['datetime'].dt.month == 1) | (data['datetime'].dt.month == 2) | (data['datetime'].dt.month == 12)\n",
"autumn_filter = (data['datetime'].dt.month == 3) | (data['datetime'].dt.month == 4) | (data['datetime'].dt.month == 5)\n",
"winter_filter = (data['datetime'].dt.month == 6) | (data['datetime'].dt.month == 7) | (data['datetime'].dt.month == 8)\n",
"spring_filter = (data['datetime'].dt.month == 9) | (data['datetime'].dt.month == 10) | (data['datetime'].dt.month == 11)\n",
"\n",
"data['season'] = ''\n",
"\n",
"data.loc[summer_filter, 'season'] = 'summer'\n",
"data.loc[autumn_filter, 'season'] = 'autumn'\n",
"data.loc[winter_filter, 'season'] = 'winter'\n",
"data.loc[spring_filter, 'season'] = 'spring'\n",
"\n",
"gp_season_station = data.groupby(['season', 'station']).agg({'mean_wind': 'mean'})\n",
"gp_season_station.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 237
},
"id": "b8-2rnOJSlwr",
"outputId": "b7a1c450-9b56-40f6-c8f0-b081cc6cf8cc"
},
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" mean_wind\n",
"season station \n",
"autumn A601 1.426437\n",
" A602 3.344158\n",
" A606 4.352016\n",
" A607 2.316259\n",
" A608 2.009615"
],
"text/html": [
"\n",
" <div id=\"df-153f80c3-1e09-4594-96b4-d9bf391331bb\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>mean_wind</th>\n",
" </tr>\n",
" <tr>\n",
" <th>season</th>\n",
" <th>station</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">autumn</th>\n",
" <th>A601</th>\n",
" <td>1.426437</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A602</th>\n",
" <td>3.344158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A606</th>\n",
" <td>4.352016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A607</th>\n",
" <td>2.316259</td>\n",
" </tr>\n",
" <tr>\n",
" <th>A608</th>\n",
" <td>2.009615</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-153f80c3-1e09-4594-96b4-d9bf391331bb')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-153f80c3-1e09-4594-96b4-d9bf391331bb button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-153f80c3-1e09-4594-96b4-d9bf391331bb');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"(\n",
" p9.ggplot(gp_season_station.reset_index(), p9.aes(x='season', y='mean_wind', fill='station'))\n",
" + p9.geom_bar(stat='identity', position='dodge')\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 465
},
"id": "6J_YEmGeWEKJ",
"outputId": "aea0f51d-4156-4be8-9cb1-cc98d6c63db0"
},
"execution_count": 41,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAo4AAAGuCAYAAAAeSodLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTy0lEQVR4nO3de1yUZf7/8RenUUdATipqqBGWp8zUNAh1q9VtCwgzO40Khn61zUJbiWy3bLU2O7hlWSvr5kgikG1qmsXWWh4K2mL5zgrWZratoiwBcTBLhoPz+6Ov84s8TTDMDPh+Ph48cq77nuv+XPfN2NvrPoyXzWazISIiIiJyDt7uLkBEREREOgYFRxERERFxiIKjiIiIiDhEwVFEREREHKLgKCIiIiIOUXAUEREREYcoOIqIiIiIQxQcRURERMQhvu4uoC2qqqrcXYJH8vLyolu3bhw/fhw9373z0HHtnHRcOycd17MLCwtzdwnSSppx7IS8vb0xGo14e+vwdiY6rp2TjmvnpOMqnZV+o0VERETEIQqOIiIiIuIQj7rGMT8/n+zsbL766isCAwNJSUkhJibG3WWJiIiICB4UHP/5z3/y5z//mUWLFjF48GCOHj1KfX29u8sSERERkf/jMcExOzubW2+9laFDhwIQFBTk3oJEREREpAWPCI7Nzc18/vnnjB07lnnz5lFfX8/ll1/O7Nmz6d69u7vLExERERE8JDjW1tbS1NTE7t27efTRR+natSsrVqzgz3/+M6mpqfb1qqqqWjy70dvbm549e7qjZI/m4+PT4r/SOei4dk46rp2Tjqt0Vh4RHLt06QLADTfcYH8o6LRp0/j973/fYr3XXnuNNWvW2F8nJyczf/581xXawQQGBrq7BGkHOq6dk45r56TjKp2NRwRHf39/wsLC8PLyOut6U6dOZeLEifbX3t7e1NTUtHd5HY6Pjw+BgYEcPXqU5uZmd5cjTqLj2jnpuHZOOq5nFxwc7O4SpJU8IjgCTJ48me3btzNmzBi6dOnCa6+9xtixY1usExYW1uJriqqqqvSBPIvm5mbtn05Ix7Vz0nHtnHRcpbPxmOA4bdo0jh49yt13342Pjw9jxoxh9uzZ7i5LRERERP6Pl60Df/v6D2+Ukf/Px8eH4OBgampq9C/dTkTHtXPSce2cdFzP7odnD6Vj0VcOioiIiIhDFBxFRERExCEKjiIiIiLiEI+5OUbEHcprHXsOaHjQqnauRERExPNpxlFEREREHKLgKCIiIiIOUXAUEREREYcoOIqIiIiIQxQcRURERMQhCo4iIiIi4hAFRxERERFxiIKjiIiIiDhEwVFEREREHKLgKCIiIiIOUXAUEREREYcoOIqIiIiIQxQcRURE5Ly2ZcsWXnzxxVa99z//+Q+PPPIIZWVlLdp37tyJl5cXhYWFzijRYyg4ioiIyHmtrcHxd7/73SnBcdSoURQUFDBkyBBnlOgxfN1dgIiIiEhnExgYyJVXXunuMpxOM44iIiLS6e3bt4/rr7+e0NBQjEYjl1xyCU8++STJyclkZmayb98+vLy88PLyIjk5GYCCggISEhLo27cv3bt3Z+TIkaxfv97e586dO7n66qsBuOKKK+zvP7nsx6eq6+vrue++++jbty9du3Zl5MiRbN68uUWdycnJDB8+nJ07d3L55ZfTvXt3xo4dyz/+8Y923kOO0YyjiIiIdHrx8fH07t2bl156iR49enDgwAEOHz7MQw89RGVlJf/617/YsGEDAD179gTg4MGDXHXVVcybN4+uXbvywQcfkJKSwokTJ0hKSmLUqFG88MIL3H333ZjNZgYPHnzWGkwmE3l5eTz22GMMHjyYl19+malTp7JlyxYSEhLs65WXl3PvvffywAMP0KNHDxYvXsyUKVP44osv8PPza7+d5AAFRxEREenUqqqq+PLLL1m5ciXx8fEA9plC+D4oHjx48JRTy7fddpv9zzabjQkTJnD48GEyMjJISkoiMDCQoUOHAjB8+HDGjBlzxhr27t3Lpk2bWL16NXPnzgXguuuus18j+cPgWF1dza5duxg2bBgA3bt35+qrr+bvf/87sbGxbdwbbaNT1SIiItKphYaGMmDAABYvXkxmZiaHDx926H01NTXce++9DBgwAD8/P/z8/PjTn/7E/v37f3INe/bsAWDatGkt2m+99Vb+93//l2+//dbe1rdvX3toBOzh1NG625OCo4iIiHRqXl5evP322wwZMoS7776biIgIxowZw+7du8/6vuTkZHJycli0aBFvv/02H3/8MXfeeSf19fU/uYaamhr8/PwICQlp0d67d29sNhu1tbX2tqCgoBbrGAwGgFZt19kUHEVERKTTu/jii3n11Vepqalh586ddOnShfj4eI4dO3ba9evr63njjTf47W9/yz333MM111zDmDFjOHHiRKu2HxISQmNjIzU1NS3av/rqK7y8vE4Ji55KwVFERETOG35+fkycOJEHHniAo0ePUlZWhsFgOGU2z2q1cuLECftsH8A333zD1q1bW6zn6GzgyWsTX3311Rbtr776qv3u6Y5AN8eIiIhIp7Z3715+/etfc+utt3LRRRdRV1fH448/zsCBA7nooosYMmQIa9euJScnh0GDBhEWFsbAgQO54oorWL58OT179sTX15fly5fTo0cPKioq7H1ffPHF+Pj4sHbtWnx9ffH19T3tTTIjRozgpptu4r777uP48eNccsklZGVlkZ+fz+uvv+7K3dEmCo4iIiLSqYWHhxMeHs7jjz/OkSNH6NGjB+PHjycrKwsfHx9SUlL46KOPuOeee/j6669JSkpi3bp1ZGdnM3fuXJKSkggNDeXee+/l2LFjPP300/a+w8LCeOGFF3jyySdZv349TU1N2Gy209aRlZXFgw8+yPLly6murmbw4MH85S9/sd/p3RF42c40ug6gqqrK3SV4JB8fH4KDg6mpqaG5udnd5Xi08tr5Dq0XHrSqnSs5Nx3XzknHtXPScT27sLAwd5cgraRrHEVERETEIQqOIiIiIuIQBUcRERERcYhujhEREZFO60DybedeqRWi1uW2S7+eTjOOIiIiIuIQBUcRERERcYiCo4iIiIg4RMFRRERERByi4CgiIiIiDlFwFBEREXGixMREDAYDlZWVLdoPHjxIYmIigYGBhISEkJSUZF/W0NDAvHnzCAoKIiwsjMWLF7f46sKHHnqISy+9FF9fXx544AGXjeXHFBxFREREnKSiooLt27cTEBDAhg0b7O2NjY1MmjSJ6OhoysrKKC8vJzU11b586dKlFBUVsX//foqKiti0aROrV6+2L4+KiuLJJ58kISHBpeP5MQVHERERESfJysoiKiqKtLQ0zGazvT0zM5OePXuSnp6Ov78/BoOBUaNG2ZebzWYefvhhevXqRf/+/Vm0aBFr1661L09KSuKXv/wlgYGBLh3Pjyk4ioiIiDiJ2Wxm+vTpmEwmiouLKSoqAqCgoIDIyEji4uIIDQ0lJiaGgoICAGpqaigrK2PkyJH2fkaOHElJSYk7hnBWCo4iIiIiTlBYWMi+ffswmUxEREQwYcIE+6xjaWkpOTk5zJ07l/LyclJSUoiLi6Om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jCQuLo7Q0FBiYmJOmTF86623CA0NZciQITzxxBOcOHHitNv49ttvKSwsZPjw4e0+nh9TcBQRERFxgsLCQvbt24fJZCIiIoIJEybYZx1LS0vJyclh7ty5lJeXk5KSQlxcHDU1NQBMmzaNTz75hMrKSrKyslizZg3PPPPMKds4ceIEycnJXHHFFUyePNml4wM9x1HOYdH82rMu13PRRUREvmc2m4mNjWXgwIEAzJgxg/vvv5+nn34ao9FIdHQ08fHxAKSkpLB8+XLy8/O54YYbGDZsmL2f0aNH85vf/IaMjAx+/etf29ttNhvz5s2jrKyMv/71r3h5ebl0fKDgKCIiItJmVquVnJwcrFYr4eHhwPc3tVRXV7N161ZGjBjBzp07He7P29sbm81mf22z2bj77ruxWCz87W9/w9/f39lDcKwut2xVREREpBPZsmULDQ0NFBcXY7FYsFgslJSUYDKZMJvNzJw5k8LCQvLy8mhubiYzM5Pa2lpiYmLs76+urgZg7969PPbYY0yZMsXe//z58/nwww/561//SmBgoFvGCJpxFBEREWmzk+EwMjKyRfvChQsZN24cRqOR3NxcUlNTKSsrY+jQoWzbto3g4GAANm7cyOzZszl+/Dh9+vRh1qxZpKWlAd8///HFF1+kS5cuRERE2Pt+8MEHefDBB103SBQcRUREPM65ri8HXWPuafLy8k7bPnr0aJqamgBISEggISHhtOud7YHeAwYMaHHa2p10qlpEREREHKLgKCIiIiIO0anq89j87NpzrtO1/csQERGRDkLBUUREpBOrnV/u7hKkE9GpahERERFxiIKjiIiIiDhEp6pFRERcxJFry0HXlzvTzNwod5fQqWjGUUREREQcohlHaXe6MFtERKRzUHAUERGRTuvAbSXt0m9U7vB26dfT6VS1iIiIiDikQ884GgwGunTp0uZ+atteirhAQEDAT1q/tn3KECfTce2cdFw7p596XKXz6dDBsaGhgYaGBneXIS7yzTffuLsEaQc6rp2Tjmvn5Kzj6oxJH3EPnaoWEREREYcoOIqIiIiIQxQcRURERJwoMTERg8FAZWVli/aDBw+SmJhIYGAgISEhJCUl2Zc98sgj+Pn54e/vb//Zs2ePffnnn3/O5MmTCQoKYsCAAbz00ksuG88PKTiKiIiIOElFRQXbt28nICCADRs22NsbGxuZ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Tpo0iSeeeILbb7+dyMhIHnvsMUwmEytWrMBkMjFo0CCuvvpq9u3b567hyf9pbGwkKyuL0tJSe+D41a9+xWeffUZUVBR1dXXMmDEDf39/7rnnHi644AKnbHfSpEn897//5b777sNgMHDLLbfw/vvv6674n+hMx++CCy4462e0vSUlJfHqq6/ywAMPUFdXR48ePRg/fvwZb6ISx4WFhRESEsKAAQPs/8gbMmQIBw4caNUTCeLj41m5ciVvv/02Y8eOZeHChTz00EOsW7eOefPmUV9fT+/evZk6daqzhyLidHocj4ibnHzkxsnHfLS3L774grS0NP7yl7+0uK5SRETEUfq/h0gn1djYyEcffURzczN1dXW8/PLLjBs3TqFRRERaTaeqRTqxjRs3smLFCnx9fbn00kuZO3euu0sSEZEOTKeqRURERMQhOmclIiIiIg5RcBQRERERhyg4ioiIiIhDFBxFRERExCEKjiIiIiLiEAVHEREREXGIgqOIiIiIOETBUUREREQcouAoIiIiIg5RcBSRU+zbt4/rr7+e0NBQjEYjl1xyCU8++aR9eUFBAddccw3du3enR48e3HHHHVRUVLTo44EHHuDSSy/F39+ffv36cfvtt/Pf//63xToffPABEyZMoEePHgQEBHDppZeSmZnZYp2MjAwuueQSunTpwsCBA3n00Uc5ceKEffm6devw8vLif//3f/nlL39J9+7dGTRoEC+//HI77BkRkfObgqOInCI+Pp6amhpeeukltm/fzqJFi/j222+B70Pjz372M3r06MErr7zCn/70Jz7++GNuvPHGFn1UVFTw4IMPsn37dlauXMl//vMfJk6cSFNTEwBHjx7lhhtuIDAwkJycHLZs2cL//M//UFtba+/j+eefZ968efziF79g27ZtJCcn88gjj3D//fefUrPJZGLy5Mls2bKFyy+/nOTkZD799NP220kiIucjm4jID1RWVtoA29atW0+7fMKECbaYmBjbiRMn7G379u2zeXl52bZv337a9zQ1NdkOHz5sA2x//etfbTabzfbxxx/bANvevXvP+J6wsDDbbbfd1qJ98eLFNoPBYKuqqrLZbDab2Wy2AbYXXnjBvs6xY8dsRqPRtmzZMscHLiIi56QZRxFpITQ0lAEDBrB48WIyMzM5fPiwfdl3333HBx98wLRp02hubqapqYmmpiYuvvhiIiIi+Pjjj+3rvvXWW8TExNCjRw98fX254IILANi/fz8AF110EYGBgdx1111s3LiRysrKFnX861//oqqqimnTprVov/XWW2loaOCjjz5q0T558mT7n7t3786AAQNa1C4iIm2n4CgiLXh5efH2228zZMgQ7r77biIiIhgzZgy7d++mpqaG5uZmFi5ciJ+fX4ufQ4cOUVpaCsDHH39MQkICffv2Zf369RQUFPDhhx8CUF9fD0BwcDDvvPMOAQEBzJgxg/DwcH72s59RXFwMQE1NDQC9e/duUd/J19XV1S3ag4KCWrw2GAz2bYmIiHP4ursAEfE8F198Ma+++iqNjY3k5+fz4IMPEh8fz6FDh/Dy8uLBBx8kMTHxlPeFhYUBsHnzZnr06MHGjRvx9v7+36cHDx48Zf2xY8fy1ltvcfz4cd577z0WLVpEYmIiX3zxBSEhIQCn3HTz1VdfAdiXi4iI6yg4isgZ+fn5MXHiRB544AESEhL46quviI6O5tNPP+XRRx894/uOHz+On58fXl5e9rYNGzaccf1u3bpx/fXX88UXX5Camkp9fT2XXHIJPXv25NVXX2XKlCn2dTdu3IjBYGDs2LHOGaSIiDhMwVFEWti7dy+//vWvufXWW7nooouoq6vj8ccfZ+DAgVx00UU89dRTXHPNNdx6663cdtttBAcHc/jwYd555x1mzZrFz372MyZNmsSzzz7LPffcw5QpUygoKGD9+vUttrN9+3ZeeuklpkyZQv/+/SkvL+f555/nqquuomvXrgA89NBD3HvvvfTq1Yvrr7+eDz/8kCeeeIIFCxYQGhrqjt0jInJeU3AUkRbCw8MJDw/n8ccf58iRI/To0YPx48eTlZWFj48PMTExvP/++yxZsoRZs2bR0NDABRdcwLXXXktUVBQA119/PU888QTPP/88ZrOZq666ijfeeIOLL77Yvp2oqCi8vb35zW9+Q0VFBaGhoUyePJnHH3/cvs4999yDn58ff/jDH3jxxRfp06cPjzzyCA8++KDL94uIiICXzWazubsIEREREfF8uqtaRERERByi4CgiIiIiDlFwFBERERGHKDiKiIiIiEMUHEVERETEIQqOIiIiIuIQBUcRERERcYiCo4iIiIg4RMFRRERERByi4CgiIiIiDlFwFBERERGH/D9Qx6X0j4yklAAAAABJRU5ErkJggg==\n"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<ggplot: (8794227757966)>"
]
},
"metadata": {},
"execution_count": 41
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment