trainings/PythonAI/JupyterLab/Cwiczenie1.ipynb

1621 lines
53 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "3b43758b-7204-4cd1-b0dc-9a2ce7926ac7",
"metadata": {},
"source": [
"# Ćwiczenie 1"
]
},
{
"cell_type": "markdown",
"id": "c0538a1b-8b08-449c-87c1-8469e6e72197",
"metadata": {},
"source": [
"## Wczytaj dane"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "178ae645-cad9-491c-9a26-c173eda34a00",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "540f9f69-d932-4b5a-8d70-e18a08bdcf46",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>station</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>SNWD</th>\n",
" <th>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>WESF</th>\n",
" <th>inclement_weather</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-01-01</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-01-02</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>-8.3</td>\n",
" <td>-16.1</td>\n",
" <td>-12.2</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-01-03</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>-4.4</td>\n",
" <td>-13.9</td>\n",
" <td>-13.3</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-01-04</td>\n",
" <td>?</td>\n",
" <td>20.6</td>\n",
" <td>229.0</td>\n",
" <td>inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>19.3</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-01-05</td>\n",
" <td>?</td>\n",
" <td>0.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</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",
" </tr>\n",
" <tr>\n",
" <th>476</th>\n",
" <td>2018-12-28</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>11.7</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>6.1</td>\n",
" <td>-1.7</td>\n",
" <td>5.0</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>477</th>\n",
" <td>2018-12-29</td>\n",
" <td>?</td>\n",
" <td>21.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>478</th>\n",
" <td>2018-12-30</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>479</th>\n",
" <td>2018-12-31</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>3.3</td>\n",
" <td>-3.3</td>\n",
" <td>-2.8</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>480</th>\n",
" <td>2018-12-31</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>481 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" date station PRCP SNOW SNWD TMAX TMIN TOBS \\\n",
"0 2018-01-01 ? 0.0 0.0 -inf 5505.0 -40.0 NaN \n",
"1 2018-01-02 GHCND:USC00280907 0.0 0.0 -inf -8.3 -16.1 -12.2 \n",
"2 2018-01-03 GHCND:USC00280907 0.0 0.0 -inf -4.4 -13.9 -13.3 \n",
"3 2018-01-04 ? 20.6 229.0 inf 5505.0 -40.0 NaN \n",
"4 2018-01-05 ? 0.3 NaN NaN 5505.0 -40.0 NaN \n",
".. ... ... ... ... ... ... ... ... \n",
"476 2018-12-28 GHCND:USC00280907 11.7 0.0 -inf 6.1 -1.7 5.0 \n",
"477 2018-12-29 ? 21.3 NaN NaN 5505.0 -40.0 NaN \n",
"478 2018-12-30 ? 0.0 NaN NaN 5505.0 -40.0 NaN \n",
"479 2018-12-31 GHCND:USC00280907 0.0 0.0 -inf 3.3 -3.3 -2.8 \n",
"480 2018-12-31 ? 0.0 0.0 -inf 5505.0 -40.0 NaN \n",
"\n",
" WESF inclement_weather \n",
"0 NaN NaN \n",
"1 NaN False \n",
"2 NaN False \n",
"3 19.3 True \n",
"4 NaN NaN \n",
".. ... ... \n",
"476 NaN False \n",
"477 NaN NaN \n",
"478 NaN NaN \n",
"479 NaN False \n",
"480 NaN NaN \n",
"\n",
"[481 rows x 10 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(\"data/dirty_data.csv\")\n",
"df = df.drop_duplicates().reset_index()\n",
"del df['index']\n",
"df.date = pd.to_datetime(df.date)\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "1c107b82-f121-4bfb-8933-3b4882fb988f",
"metadata": {},
"source": [
"## Clean inclement_weather"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "62e61e9e-f06e-4124-9a89-1979dc071c47",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>station</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>SNWD</th>\n",
" <th>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>WESF</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-01-01</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-01-02</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>-8.3</td>\n",
" <td>-16.1</td>\n",
" <td>-12.2</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-01-03</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>-4.4</td>\n",
" <td>-13.9</td>\n",
" <td>-13.3</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-01-04</td>\n",
" <td>?</td>\n",
" <td>20.6</td>\n",
" <td>229.0</td>\n",
" <td>inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>19.3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-01-05</td>\n",
" <td>?</td>\n",
" <td>0.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</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",
" </tr>\n",
" <tr>\n",
" <th>476</th>\n",
" <td>2018-12-28</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>11.7</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>6.1</td>\n",
" <td>-1.7</td>\n",
" <td>5.0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>477</th>\n",
" <td>2018-12-29</td>\n",
" <td>?</td>\n",
" <td>21.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>478</th>\n",
" <td>2018-12-30</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>479</th>\n",
" <td>2018-12-31</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>3.3</td>\n",
" <td>-3.3</td>\n",
" <td>-2.8</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>480</th>\n",
" <td>2018-12-31</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-inf</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>481 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" date station PRCP SNOW SNWD TMAX TMIN TOBS \\\n",
"0 2018-01-01 ? 0.0 0.0 -inf 5505.0 -40.0 NaN \n",
"1 2018-01-02 GHCND:USC00280907 0.0 0.0 -inf -8.3 -16.1 -12.2 \n",
"2 2018-01-03 GHCND:USC00280907 0.0 0.0 -inf -4.4 -13.9 -13.3 \n",
"3 2018-01-04 ? 20.6 229.0 inf 5505.0 -40.0 NaN \n",
"4 2018-01-05 ? 0.3 NaN NaN 5505.0 -40.0 NaN \n",
".. ... ... ... ... ... ... ... ... \n",
"476 2018-12-28 GHCND:USC00280907 11.7 0.0 -inf 6.1 -1.7 5.0 \n",
"477 2018-12-29 ? 21.3 NaN NaN 5505.0 -40.0 NaN \n",
"478 2018-12-30 ? 0.0 NaN NaN 5505.0 -40.0 NaN \n",
"479 2018-12-31 GHCND:USC00280907 0.0 0.0 -inf 3.3 -3.3 -2.8 \n",
"480 2018-12-31 ? 0.0 0.0 -inf 5505.0 -40.0 NaN \n",
"\n",
" WESF incl_weather_true incl_weather_false \n",
"0 NaN 0 0 \n",
"1 NaN 0 1 \n",
"2 NaN 0 1 \n",
"3 19.3 1 0 \n",
"4 NaN 0 0 \n",
".. ... ... ... \n",
"476 NaN 0 1 \n",
"477 NaN 0 0 \n",
"478 NaN 0 0 \n",
"479 NaN 0 1 \n",
"480 NaN 0 0 \n",
"\n",
"[481 rows x 11 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Clean inclement_weather\n",
"df = df.assign(\n",
" incl_weather_true = lambda x: np.where(x.inclement_weather == True, 1, 0),\n",
" incl_weather_false = lambda x: np.where(x.inclement_weather == False, 1, 0)\n",
")\n",
"del df['inclement_weather']\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "cf3c59c1-ae36-45bd-8b8f-de4f616a392a",
"metadata": {},
"source": [
"## Remove SNWD"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "e06e7a55-1837-456b-97ef-4c58276bd7b6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>station</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>WESF</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" <th>snow</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-01-01</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-01-02</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-8.3</td>\n",
" <td>-16.1</td>\n",
" <td>-12.2</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-01-03</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-4.4</td>\n",
" <td>-13.9</td>\n",
" <td>-13.3</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-01-04</td>\n",
" <td>?</td>\n",
" <td>20.6</td>\n",
" <td>229.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>19.3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-01-05</td>\n",
" <td>?</td>\n",
" <td>0.3</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</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",
" </tr>\n",
" <tr>\n",
" <th>476</th>\n",
" <td>2018-12-28</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>11.7</td>\n",
" <td>0.0</td>\n",
" <td>6.1</td>\n",
" <td>-1.7</td>\n",
" <td>5.0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>477</th>\n",
" <td>2018-12-29</td>\n",
" <td>?</td>\n",
" <td>21.3</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>478</th>\n",
" <td>2018-12-30</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>479</th>\n",
" <td>2018-12-31</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3.3</td>\n",
" <td>-3.3</td>\n",
" <td>-2.8</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>480</th>\n",
" <td>2018-12-31</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>481 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" date station PRCP SNOW TMAX TMIN TOBS WESF \\\n",
"0 2018-01-01 ? 0.0 0.0 5505.0 -40.0 NaN NaN \n",
"1 2018-01-02 GHCND:USC00280907 0.0 0.0 -8.3 -16.1 -12.2 NaN \n",
"2 2018-01-03 GHCND:USC00280907 0.0 0.0 -4.4 -13.9 -13.3 NaN \n",
"3 2018-01-04 ? 20.6 229.0 5505.0 -40.0 NaN 19.3 \n",
"4 2018-01-05 ? 0.3 NaN 5505.0 -40.0 NaN NaN \n",
".. ... ... ... ... ... ... ... ... \n",
"476 2018-12-28 GHCND:USC00280907 11.7 0.0 6.1 -1.7 5.0 NaN \n",
"477 2018-12-29 ? 21.3 NaN 5505.0 -40.0 NaN NaN \n",
"478 2018-12-30 ? 0.0 NaN 5505.0 -40.0 NaN NaN \n",
"479 2018-12-31 GHCND:USC00280907 0.0 0.0 3.3 -3.3 -2.8 NaN \n",
"480 2018-12-31 ? 0.0 0.0 5505.0 -40.0 NaN NaN \n",
"\n",
" incl_weather_true incl_weather_false snow \n",
"0 0 0 0 \n",
"1 0 1 0 \n",
"2 0 1 0 \n",
"3 1 0 1 \n",
"4 0 0 0 \n",
".. ... ... ... \n",
"476 0 1 0 \n",
"477 0 0 0 \n",
"478 0 0 0 \n",
"479 0 1 0 \n",
"480 0 0 0 \n",
"\n",
"[481 rows x 11 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# remove SNWD\n",
"df = df.assign(\n",
" snow = lambda x: np.where(x.SNWD == np.inf, 1, 0)\n",
")\n",
"del df['SNWD']\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "b0b5005b-ad90-4164-83ad-8e4030684820",
"metadata": {},
"source": [
"## Replace NaN with 0"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "389f0c22-b210-45f3-9627-02c06d255a69",
"metadata": {},
"outputs": [],
"source": [
"# Replace NaN with zero\n",
"df['SNOW'] = df['SNOW'].fillna(0)\n",
"df['WESF'] = df['WESF'].fillna(0)"
]
},
{
"cell_type": "markdown",
"id": "ba7a7e21-0361-49c3-a7ca-eea9c9407758",
"metadata": {},
"source": [
"## Split data into two different tables"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "60362a3d-91ab-4666-bf26-afdeb3cd5c9c",
"metadata": {},
"outputs": [],
"source": [
"# Split data into temperature and snow\n",
"df_snow = df[df['station']=='?']\n",
"df_temp = df[df['station']!='?']"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "a68dd0eb-6085-483b-99f3-a540a35515c2",
"metadata": {},
"outputs": [],
"source": [
"del df_snow['station']\n",
"del df_snow['TMIN']\n",
"del df_snow['TMAX']\n",
"del df_snow['TOBS']\n",
"# del df_snow['']\n",
"del df_temp['station']\n",
"del df_temp['WESF']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "bb4ecdab-2136-4970-a38d-6eaec8ec92ae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>station</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>WESF</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" <th>snow</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-01-01</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-01-02</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-8.3</td>\n",
" <td>-16.1</td>\n",
" <td>-12.2</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-01-03</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>-4.4</td>\n",
" <td>-13.9</td>\n",
" <td>-13.3</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-01-04</td>\n",
" <td>?</td>\n",
" <td>20.6</td>\n",
" <td>229.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>19.3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-01-05</td>\n",
" <td>?</td>\n",
" <td>0.3</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</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",
" </tr>\n",
" <tr>\n",
" <th>476</th>\n",
" <td>2018-12-28</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>11.7</td>\n",
" <td>0.0</td>\n",
" <td>6.1</td>\n",
" <td>-1.7</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>477</th>\n",
" <td>2018-12-29</td>\n",
" <td>?</td>\n",
" <td>21.3</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>478</th>\n",
" <td>2018-12-30</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>479</th>\n",
" <td>2018-12-31</td>\n",
" <td>GHCND:USC00280907</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3.3</td>\n",
" <td>-3.3</td>\n",
" <td>-2.8</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>480</th>\n",
" <td>2018-12-31</td>\n",
" <td>?</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5505.0</td>\n",
" <td>-40.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>481 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" date station PRCP SNOW TMAX TMIN TOBS WESF \\\n",
"0 2018-01-01 ? 0.0 0.0 5505.0 -40.0 NaN 0.0 \n",
"1 2018-01-02 GHCND:USC00280907 0.0 0.0 -8.3 -16.1 -12.2 0.0 \n",
"2 2018-01-03 GHCND:USC00280907 0.0 0.0 -4.4 -13.9 -13.3 0.0 \n",
"3 2018-01-04 ? 20.6 229.0 5505.0 -40.0 NaN 19.3 \n",
"4 2018-01-05 ? 0.3 0.0 5505.0 -40.0 NaN 0.0 \n",
".. ... ... ... ... ... ... ... ... \n",
"476 2018-12-28 GHCND:USC00280907 11.7 0.0 6.1 -1.7 5.0 0.0 \n",
"477 2018-12-29 ? 21.3 0.0 5505.0 -40.0 NaN 0.0 \n",
"478 2018-12-30 ? 0.0 0.0 5505.0 -40.0 NaN 0.0 \n",
"479 2018-12-31 GHCND:USC00280907 0.0 0.0 3.3 -3.3 -2.8 0.0 \n",
"480 2018-12-31 ? 0.0 0.0 5505.0 -40.0 NaN 0.0 \n",
"\n",
" incl_weather_true incl_weather_false snow \n",
"0 0 0 0 \n",
"1 0 1 0 \n",
"2 0 1 0 \n",
"3 1 0 1 \n",
"4 0 0 0 \n",
".. ... ... ... \n",
"476 0 1 0 \n",
"477 0 0 0 \n",
"478 0 0 0 \n",
"479 0 1 0 \n",
"480 0 0 0 \n",
"\n",
"[481 rows x 11 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7c8199c4-9d1b-405a-9cda-b2aef1616999",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>WESF</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" <th>snow</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>232</td>\n",
" <td>232.000000</td>\n",
" <td>232.000000</td>\n",
" <td>232.000000</td>\n",
" <td>232.000000</td>\n",
" <td>232.0</td>\n",
" <td>232.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2018-06-23 12:49:39.310344704</td>\n",
" <td>4.175431</td>\n",
" <td>2.900862</td>\n",
" <td>0.437500</td>\n",
" <td>0.025862</td>\n",
" <td>0.0</td>\n",
" <td>0.025862</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>2018-01-01 00:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2018-03-30 18:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2018-06-15 12:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2018-09-11 06:00:00</td>\n",
" <td>3.075000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2018-12-31 00:00:00</td>\n",
" <td>47.000000</td>\n",
" <td>229.000000</td>\n",
" <td>28.700000</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>8.333152</td>\n",
" <td>21.824836</td>\n",
" <td>3.007223</td>\n",
" <td>0.159067</td>\n",
" <td>0.0</td>\n",
" <td>0.159067</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date PRCP SNOW WESF \\\n",
"count 232 232.000000 232.000000 232.000000 \n",
"mean 2018-06-23 12:49:39.310344704 4.175431 2.900862 0.437500 \n",
"min 2018-01-01 00:00:00 0.000000 0.000000 0.000000 \n",
"25% 2018-03-30 18:00:00 0.000000 0.000000 0.000000 \n",
"50% 2018-06-15 12:00:00 0.000000 0.000000 0.000000 \n",
"75% 2018-09-11 06:00:00 3.075000 0.000000 0.000000 \n",
"max 2018-12-31 00:00:00 47.000000 229.000000 28.700000 \n",
"std NaN 8.333152 21.824836 3.007223 \n",
"\n",
" incl_weather_true incl_weather_false snow \n",
"count 232.000000 232.0 232.000000 \n",
"mean 0.025862 0.0 0.025862 \n",
"min 0.000000 0.0 0.000000 \n",
"25% 0.000000 0.0 0.000000 \n",
"50% 0.000000 0.0 0.000000 \n",
"75% 0.000000 0.0 0.000000 \n",
"max 1.000000 0.0 1.000000 \n",
"std 0.159067 0.0 0.159067 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_snow.describe()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "7468e63c-c72b-4150-bd40-6f6e61f17af8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>date</th>\n",
" <th>PRCP</th>\n",
" <th>SNOW</th>\n",
" <th>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" <th>snow</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>249</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2018-06-30 23:36:52.048192768</td>\n",
" <td>5.527309</td>\n",
" <td>2.907631</td>\n",
" <td>16.004819</td>\n",
" <td>6.371486</td>\n",
" <td>8.712048</td>\n",
" <td>0.032129</td>\n",
" <td>0.967871</td>\n",
" <td>0.032129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>2018-01-02 00:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-11.700000</td>\n",
" <td>-17.200000</td>\n",
" <td>-16.100000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2018-03-27 00:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>6.700000</td>\n",
" <td>-1.700000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2018-07-07 00:00:00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>14.400000</td>\n",
" <td>5.600000</td>\n",
" <td>8.300000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2018-09-30 00:00:00</td>\n",
" <td>5.600000</td>\n",
" <td>0.000000</td>\n",
" <td>26.100000</td>\n",
" <td>15.600000</td>\n",
" <td>17.800000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2018-12-31 00:00:00</td>\n",
" <td>61.700000</td>\n",
" <td>178.000000</td>\n",
" <td>35.000000</td>\n",
" <td>23.900000</td>\n",
" <td>26.100000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>10.665197</td>\n",
" <td>19.832044</td>\n",
" <td>11.000615</td>\n",
" <td>10.157809</td>\n",
" <td>9.936468</td>\n",
" <td>0.176697</td>\n",
" <td>0.176697</td>\n",
" <td>0.176697</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date PRCP SNOW TMAX \\\n",
"count 249 249.000000 249.000000 249.000000 \n",
"mean 2018-06-30 23:36:52.048192768 5.527309 2.907631 16.004819 \n",
"min 2018-01-02 00:00:00 0.000000 0.000000 -11.700000 \n",
"25% 2018-03-27 00:00:00 0.000000 0.000000 6.700000 \n",
"50% 2018-07-07 00:00:00 0.000000 0.000000 14.400000 \n",
"75% 2018-09-30 00:00:00 5.600000 0.000000 26.100000 \n",
"max 2018-12-31 00:00:00 61.700000 178.000000 35.000000 \n",
"std NaN 10.665197 19.832044 11.000615 \n",
"\n",
" TMIN TOBS incl_weather_true incl_weather_false \\\n",
"count 249.000000 249.000000 249.000000 249.000000 \n",
"mean 6.371486 8.712048 0.032129 0.967871 \n",
"min -17.200000 -16.100000 0.000000 0.000000 \n",
"25% -1.700000 0.000000 0.000000 1.000000 \n",
"50% 5.600000 8.300000 0.000000 1.000000 \n",
"75% 15.600000 17.800000 0.000000 1.000000 \n",
"max 23.900000 26.100000 1.000000 1.000000 \n",
"std 10.157809 9.936468 0.176697 0.176697 \n",
"\n",
" snow \n",
"count 249.000000 \n",
"mean 0.032129 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 0.000000 \n",
"75% 0.000000 \n",
"max 1.000000 \n",
"std 0.176697 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_temp.describe()"
]
},
{
"cell_type": "markdown",
"id": "ad025f7d-3200-47b1-8cc2-4a53faa6da3b",
"metadata": {},
"source": [
"## Join the tables"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "efa6a165-9988-420f-a2f0-10cbbcd5dc39",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>TMAX</th>\n",
" <th>TMIN</th>\n",
" <th>TOBS</th>\n",
" <th>WESF</th>\n",
" <th>SNOW</th>\n",
" <th>PRCP</th>\n",
" <th>incl_weather_true</th>\n",
" <th>incl_weather_false</th>\n",
" <th>snow</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" <td>249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>16.004819</td>\n",
" <td>6.371486</td>\n",
" <td>8.712048</td>\n",
" <td>0.230120</td>\n",
" <td>4.080321</td>\n",
" <td>8.360241</td>\n",
" <td>0.048193</td>\n",
" <td>0.967871</td>\n",
" <td>0.048193</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>11.000615</td>\n",
" <td>10.157809</td>\n",
" <td>9.936468</td>\n",
" <td>2.132453</td>\n",
" <td>26.325536</td>\n",
" <td>15.718945</td>\n",
" <td>0.249368</td>\n",
" <td>0.176697</td>\n",
" <td>0.249368</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-11.700000</td>\n",
" <td>-17.200000</td>\n",
" <td>-16.100000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>6.700000</td>\n",
" <td>-1.700000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>14.400000</td>\n",
" <td>5.600000</td>\n",
" <td>8.300000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.300000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>26.100000</td>\n",
" <td>15.600000</td>\n",
" <td>17.800000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>8.600000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>35.000000</td>\n",
" <td>23.900000</td>\n",
" <td>26.100000</td>\n",
" <td>28.700000</td>\n",
" <td>279.000000</td>\n",
" <td>79.200000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TMAX TMIN TOBS WESF SNOW PRCP \\\n",
"count 249.000000 249.000000 249.000000 249.000000 249.000000 249.000000 \n",
"mean 16.004819 6.371486 8.712048 0.230120 4.080321 8.360241 \n",
"std 11.000615 10.157809 9.936468 2.132453 26.325536 15.718945 \n",
"min -11.700000 -17.200000 -16.100000 0.000000 0.000000 0.000000 \n",
"25% 6.700000 -1.700000 0.000000 0.000000 0.000000 0.000000 \n",
"50% 14.400000 5.600000 8.300000 0.000000 0.000000 0.300000 \n",
"75% 26.100000 15.600000 17.800000 0.000000 0.000000 8.600000 \n",
"max 35.000000 23.900000 26.100000 28.700000 279.000000 79.200000 \n",
"\n",
" incl_weather_true incl_weather_false snow \n",
"count 249.000000 249.000000 249.000000 \n",
"mean 0.048193 0.967871 0.048193 \n",
"std 0.249368 0.176697 0.249368 \n",
"min 0.000000 0.000000 0.000000 \n",
"25% 0.000000 1.000000 0.000000 \n",
"50% 0.000000 1.000000 0.000000 \n",
"75% 0.000000 1.000000 0.000000 \n",
"max 2.000000 1.000000 2.000000 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_merged = df_temp.set_index('date').join(df_snow.set_index('date'), lsuffix=\"_temp\", rsuffix=\"_snow\")\n",
"df_merged[\"SNOW\"] = df_merged.SNOW_temp.fillna(0) + df_merged.SNOW_snow.fillna(0)\n",
"df_merged[\"PRCP\"] = df_merged.PRCP_temp.fillna(0) + df_merged.PRCP_snow.fillna(0)\n",
"df_merged[\"incl_weather_true\"] = df_merged.incl_weather_true_temp.fillna(0) + df_merged.incl_weather_true_snow.fillna(0)\n",
"df_merged[\"incl_weather_false\"] = df_merged.incl_weather_false_temp.fillna(0) + df_merged.incl_weather_false_snow.fillna(0)\n",
"df_merged[\"snow\"] = df_merged.snow_temp.fillna(0) + df_merged.snow_snow.fillna(0)\n",
"df_merged['WESF'] = df_merged['WESF'].fillna(0)\n",
"\n",
"del df_merged[\"PRCP_temp\"]\n",
"del df_merged[\"PRCP_snow\"]\n",
"del df_merged[\"incl_weather_false_temp\"]\n",
"del df_merged[\"incl_weather_false_snow\"]\n",
"del df_merged[\"incl_weather_true_temp\"]\n",
"del df_merged[\"incl_weather_true_snow\"]\n",
"del df_merged[\"SNOW_temp\"]\n",
"del df_merged[\"SNOW_snow\"]\n",
"del df_merged[\"snow_temp\"]\n",
"del df_merged[\"snow_snow\"]\n",
"\n",
"\n",
"df_merged.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4d3b7d61-d247-49f3-a643-6fd924727cdd",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}