Skip to content

Instantly share code, notes, and snippets.

@dokeeffe
Created January 19, 2018 09:45
Show Gist options
  • Save dokeeffe/c3f460315bf057a31823ee8b5a16b409 to your computer and use it in GitHub Desktop.
Save dokeeffe/c3f460315bf057a31823ee8b5a16b409 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Are we more likely to work from home when its raining?\n",
"\n",
"Combine the work-from-home channel with climate data from http://www.met.ie\n",
"\n",
"***\n",
"\n",
"First import some modules and setup matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import json, os\n",
"import datetime\n",
"import pandas as pd\n",
"from pandas import Timestamp\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt \n",
"import matplotlib.dates as dates\n",
"from IPython.core.pylabtools import figsize\n",
"from slacker import Slacker\n",
"from pprint import pprint\n",
"import numpy as np\n",
"import seaborn as sns\n",
"sns.set(style=\"white\")\n",
"%matplotlib inline\n",
"figsize(12.5, 5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Define a function to get history for slack channel\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def getHistory(pageableObject, channelId, pageSize = 100):\n",
" messages = []\n",
" lastTimestamp = None\n",
"\n",
" while(True):\n",
" response = pageableObject.history(\n",
" channel = channelId,\n",
" latest = lastTimestamp,\n",
" oldest = 0,\n",
" count = pageSize\n",
" ).body\n",
"\n",
" messages.extend(response['messages'])\n",
"\n",
" if (response['has_more'] == True):\n",
" lastTimestamp = messages[-1]['ts'] # -1 means last element in a list\n",
" else:\n",
" break\n",
" return messages"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"### Download all messages \n",
"from nws-work-from-home and save to a json file locally"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"channel_name = 'nws-work-from-home'\n",
"if not os.path.exists('/home/dokeeffe/Desktop/{}-msgs.json'.format(channel_name)):\n",
" filePath = '/home/dokeeffe/Desktop/'\n",
" slack = Slacker(os.environ.get(\"SLACK_API_TOKEN\"))\n",
" channels = slack.channels.list().body['channels']\n",
" for channel in channels:\n",
" if channel['name'] == channel_name:\n",
" print('Getting {} {}'.format(channel['id'], channel['name']))\n",
" messages = getHistory(slack.channels, channel['id'])\n",
" channelInfo = slack.channels.info(channel['id']).body['channel']\n",
" fileName = filePath + channel['name'] + '-msgs.json'\n",
" with open(fileName, 'w') as outFile:\n",
" print(\"writing {0} records to {1}\".format(len(messages), fileName))\n",
" json.dump({'channel_info': channelInfo, 'messages': messages }, outFile, indent=4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## load json data \n",
"\n",
"Load from the local file and create a Pandas data frame."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>message</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2018-01-18 09:07:16.000399</td>\n",
" <td>wfh be in round 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2018-01-18 08:45:08.000370</td>\n",
" <td>wfh</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2018-01-18 08:09:15.000432</td>\n",
" <td>Wfh</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2018-01-18 07:57:05.000073</td>\n",
" <td>wfh this morning</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2018-01-18 07:43:01.000142</td>\n",
" <td>WFH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date message\n",
"0 2018-01-18 09:07:16.000399 wfh be in round 10\n",
"1 2018-01-18 08:45:08.000370 wfh\n",
"2 2018-01-18 08:09:15.000432 Wfh\n",
"3 2018-01-18 07:57:05.000073 wfh this morning \n",
"4 2018-01-18 07:43:01.000142 WFH"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"with open('/home/dokeeffe/Desktop/nws-work-from-home-msgs.json'.format(channel_name)) as data_file: \n",
" wfh_data = json.load(data_file)\n",
"\n",
"messages = []\n",
"timestamps = []\n",
"for msg in wfh_data['messages']:\n",
" timestamp = datetime.datetime.fromtimestamp(float(msg['ts']))\n",
" text = msg['text']\n",
" if 'wfh'.lower() in text.lower():\n",
" messages.append(text)\n",
" timestamps.append(timestamp)\n",
"\n",
"\n",
"wfh_df = pd.DataFrame({ 'message' : messages,'date' : timestamps})\n",
"wfh_df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load climate data\n",
"Data previously downloaded as a csv file from http://www.met.ie/climate-request/"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ind</th>\n",
" <th>maxtp</th>\n",
" <th>ind.1</th>\n",
" <th>mintp</th>\n",
" <th>igmin</th>\n",
" <th>gmin</th>\n",
" <th>ind.2</th>\n",
" <th>rain</th>\n",
" <th>cbl</th>\n",
" <th>wdsp</th>\n",
" <th>...</th>\n",
" <th>ind.5</th>\n",
" <th>hg</th>\n",
" <th>sun</th>\n",
" <th>dos</th>\n",
" <th>soil</th>\n",
" <th>pe</th>\n",
" <th>evap</th>\n",
" <th>smd_wd</th>\n",
" <th>smd_md</th>\n",
" <th>smd_pd</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-11-26</th>\n",
" <td>0</td>\n",
" <td>9.7</td>\n",
" <td>0</td>\n",
" <td>2.3</td>\n",
" <td>1</td>\n",
" <td>-0.1</td>\n",
" <td>0</td>\n",
" <td>0.7</td>\n",
" <td>1004.3</td>\n",
" <td>10.2</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>32</td>\n",
" <td>1.1</td>\n",
" <td>0</td>\n",
" <td>5.200</td>\n",
" <td>0.3</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-0.4</td>\n",
" <td>-9.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-27</th>\n",
" <td>0</td>\n",
" <td>10.2</td>\n",
" <td>0</td>\n",
" <td>4.3</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>998.0</td>\n",
" <td>11.8</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>29</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>7.000</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-3.6</td>\n",
" <td>-10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-28</th>\n",
" <td>0</td>\n",
" <td>6.1</td>\n",
" <td>0</td>\n",
" <td>1.8</td>\n",
" <td>0</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>997.8</td>\n",
" <td>11.0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.0</td>\n",
" <td>0</td>\n",
" <td>4.200</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.2</td>\n",
" <td>0.2</td>\n",
" <td>-9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-29</th>\n",
" <td>0</td>\n",
" <td>5.2</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1001.2</td>\n",
" <td>11.5</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>3.125</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.5</td>\n",
" <td>-8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-30</th>\n",
" <td>0</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>1003.8</td>\n",
" <td>8.9</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>3.1</td>\n",
" <td>0</td>\n",
" <td>3.600</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.8</td>\n",
" <td>0.8</td>\n",
" <td>-7.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
" ind maxtp ind.1 mintp igmin gmin ind.2 rain cbl wdsp \\\n",
"date \n",
"2017-11-26 0 9.7 0 2.3 1 -0.1 0 0.7 1004.3 10.2 \n",
"2017-11-27 0 10.2 0 4.3 0 4.0 0 4.0 998.0 11.8 \n",
"2017-11-28 0 6.1 0 1.8 0 0.2 0 0.1 997.8 11.0 \n",
"2017-11-29 0 5.2 0 0.8 1 -1.3 3 0.0 1001.2 11.5 \n",
"2017-11-30 0 7.3 0 0.8 1 -1.2 0 0.1 1003.8 8.9 \n",
"\n",
" ... ind.5 hg sun dos soil pe evap smd_wd smd_md \\\n",
"date ... \n",
"2017-11-26 ... 0 32 1.1 0 5.200 0.3 0.5 0.0 -0.4 \n",
"2017-11-27 ... 0 29 0.0 0 7.000 0.4 0.5 0.0 -3.6 \n",
"2017-11-28 ... 0 27 7.0 0 4.200 0.3 0.4 0.2 0.2 \n",
"2017-11-29 ... 0 27 7.3 0 3.125 0.3 0.4 0.5 0.5 \n",
"2017-11-30 ... 0 23 3.1 0 3.600 0.4 0.5 0.8 0.8 \n",
"\n",
" smd_pd \n",
"date \n",
"2017-11-26 -9.7 \n",
"2017-11-27 -10.0 \n",
"2017-11-28 -9.3 \n",
"2017-11-29 -8.5 \n",
"2017-11-30 -7.8 \n",
"\n",
"[5 rows x 24 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weather_df = pd.read_csv('/home/dokeeffe/Desktop/dly3904.csv', parse_dates=['date'])\n",
"weather_df.set_index('date', inplace=True)\n",
"weather_df['rain'] = weather_df['rain'].apply(pd.to_numeric, errors='coerce')\n",
"weather_df.tail()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Some exploration \n",
"Group the data by day and sum all the messages to find how many people are working from home by date"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>wfh</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2016-01-14</th>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-15</th>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-18</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-19</th>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-20</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" wfh\n",
"date \n",
"2016-01-14 6\n",
"2016-01-15 4\n",
"2016-01-18 5\n",
"2016-01-19 1\n",
"2016-01-20 3"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group_by_date = wfh_df.groupby(wfh_df['date'].dt.normalize())\n",
"wfh_count = group_by_date['message'].count().reset_index()\n",
"wfh_count = wfh_count.rename(columns={'message': 'wfh'})\n",
"wfh_count.set_index('date', inplace=True)\n",
"wfh_count.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Join the 2 dataframes\n",
"\n",
"An 'inner join' on the wfh data and climate data, joined by the index of each dataframe"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>wfh</th>\n",
" <th>ind</th>\n",
" <th>maxtp</th>\n",
" <th>ind.1</th>\n",
" <th>mintp</th>\n",
" <th>igmin</th>\n",
" <th>gmin</th>\n",
" <th>ind.2</th>\n",
" <th>rain</th>\n",
" <th>cbl</th>\n",
" <th>...</th>\n",
" <th>ind.5</th>\n",
" <th>hg</th>\n",
" <th>sun</th>\n",
" <th>dos</th>\n",
" <th>soil</th>\n",
" <th>pe</th>\n",
" <th>evap</th>\n",
" <th>smd_wd</th>\n",
" <th>smd_md</th>\n",
" <th>smd_pd</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-11-24</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>6.4</td>\n",
" <td>0</td>\n",
" <td>0.9</td>\n",
" <td>1</td>\n",
" <td>-3.4</td>\n",
" <td>0</td>\n",
" <td>2.1</td>\n",
" <td>993.0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>3.9</td>\n",
" <td>0</td>\n",
" <td>4.375</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-1.3</td>\n",
" <td>-10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-27</th>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>10.2</td>\n",
" <td>0</td>\n",
" <td>4.3</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>998.0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>29</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>7.000</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-3.6</td>\n",
" <td>-10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-28</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>6.1</td>\n",
" <td>0</td>\n",
" <td>1.8</td>\n",
" <td>0</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>997.8</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.0</td>\n",
" <td>0</td>\n",
" <td>4.200</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.2</td>\n",
" <td>0.2</td>\n",
" <td>-9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-29</th>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>5.2</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1001.2</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>3.125</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.5</td>\n",
" <td>-8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-30</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>1003.8</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>3.1</td>\n",
" <td>0</td>\n",
" <td>3.600</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.8</td>\n",
" <td>0.8</td>\n",
" <td>-7.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 25 columns</p>\n",
"</div>"
],
"text/plain": [
" wfh ind maxtp ind.1 mintp igmin gmin ind.2 rain cbl \\\n",
"date \n",
"2017-11-24 5 0 6.4 0 0.9 1 -3.4 0 2.1 993.0 \n",
"2017-11-27 6 0 10.2 0 4.3 0 4.0 0 4.0 998.0 \n",
"2017-11-28 5 0 6.1 0 1.8 0 0.2 0 0.1 997.8 \n",
"2017-11-29 6 0 5.2 0 0.8 1 -1.3 3 0.0 1001.2 \n",
"2017-11-30 10 0 7.3 0 0.8 1 -1.2 0 0.1 1003.8 \n",
"\n",
" ... ind.5 hg sun dos soil pe evap smd_wd smd_md \\\n",
"date ... \n",
"2017-11-24 ... 0 23 3.9 0 4.375 0.4 0.5 0.0 -1.3 \n",
"2017-11-27 ... 0 29 0.0 0 7.000 0.4 0.5 0.0 -3.6 \n",
"2017-11-28 ... 0 27 7.0 0 4.200 0.3 0.4 0.2 0.2 \n",
"2017-11-29 ... 0 27 7.3 0 3.125 0.3 0.4 0.5 0.5 \n",
"2017-11-30 ... 0 23 3.1 0 3.600 0.4 0.5 0.8 0.8 \n",
"\n",
" smd_pd \n",
"date \n",
"2017-11-24 -10.0 \n",
"2017-11-27 -10.0 \n",
"2017-11-28 -9.3 \n",
"2017-11-29 -8.5 \n",
"2017-11-30 -7.8 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joined = pd.concat([wfh_count, weather_df], axis=1, join='inner')\n",
"joined.tail()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>wfh</th>\n",
" <th>ind</th>\n",
" <th>maxtp</th>\n",
" <th>ind.1</th>\n",
" <th>mintp</th>\n",
" <th>igmin</th>\n",
" <th>gmin</th>\n",
" <th>ind.2</th>\n",
" <th>rain</th>\n",
" <th>cbl</th>\n",
" <th>...</th>\n",
" <th>ind.5</th>\n",
" <th>hg</th>\n",
" <th>sun</th>\n",
" <th>dos</th>\n",
" <th>soil</th>\n",
" <th>pe</th>\n",
" <th>evap</th>\n",
" <th>smd_wd</th>\n",
" <th>smd_md</th>\n",
" <th>smd_pd</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-11-24</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>6.4</td>\n",
" <td>0</td>\n",
" <td>0.9</td>\n",
" <td>1</td>\n",
" <td>-3.4</td>\n",
" <td>0</td>\n",
" <td>2.1</td>\n",
" <td>993.0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>3.9</td>\n",
" <td>0</td>\n",
" <td>4.375</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-1.3</td>\n",
" <td>-10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-27</th>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>10.2</td>\n",
" <td>0</td>\n",
" <td>4.3</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>998.0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>29</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>7.000</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.0</td>\n",
" <td>-3.6</td>\n",
" <td>-10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-28</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>6.1</td>\n",
" <td>0</td>\n",
" <td>1.8</td>\n",
" <td>0</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>997.8</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.0</td>\n",
" <td>0</td>\n",
" <td>4.200</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.2</td>\n",
" <td>0.2</td>\n",
" <td>-9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-29</th>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>5.2</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1001.2</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>27</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>3.125</td>\n",
" <td>0.3</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.5</td>\n",
" <td>-8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-30</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>7.3</td>\n",
" <td>0</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>-1.2</td>\n",
" <td>0</td>\n",
" <td>0.1</td>\n",
" <td>1003.8</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>3.1</td>\n",
" <td>0</td>\n",
" <td>3.600</td>\n",
" <td>0.4</td>\n",
" <td>0.5</td>\n",
" <td>0.8</td>\n",
" <td>0.8</td>\n",
" <td>-7.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 25 columns</p>\n",
"</div>"
],
"text/plain": [
" wfh ind maxtp ind.1 mintp igmin gmin ind.2 rain cbl \\\n",
"date \n",
"2017-11-24 5 0 6.4 0 0.9 1 -3.4 0 2.1 993.0 \n",
"2017-11-27 6 0 10.2 0 4.3 0 4.0 0 4.0 998.0 \n",
"2017-11-28 5 0 6.1 0 1.8 0 0.2 0 0.1 997.8 \n",
"2017-11-29 6 0 5.2 0 0.8 1 -1.3 3 0.0 1001.2 \n",
"2017-11-30 10 0 7.3 0 0.8 1 -1.2 0 0.1 1003.8 \n",
"\n",
" ... ind.5 hg sun dos soil pe evap smd_wd smd_md \\\n",
"date ... \n",
"2017-11-24 ... 0 23 3.9 0 4.375 0.4 0.5 0.0 -1.3 \n",
"2017-11-27 ... 0 29 0.0 0 7.000 0.4 0.5 0.0 -3.6 \n",
"2017-11-28 ... 0 27 7.0 0 4.200 0.3 0.4 0.2 0.2 \n",
"2017-11-29 ... 0 27 7.3 0 3.125 0.3 0.4 0.5 0.5 \n",
"2017-11-30 ... 0 23 3.1 0 3.600 0.4 0.5 0.8 0.8 \n",
"\n",
" smd_pd \n",
"date \n",
"2017-11-24 -10.0 \n",
"2017-11-27 -10.0 \n",
"2017-11-28 -9.3 \n",
"2017-11-29 -8.5 \n",
"2017-11-30 -7.8 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result = pd.concat([wfh_count, weather_df], axis=1, join='inner')\n",
"result.tail()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.JointGrid at 0x7fc884a77780>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc884a77cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.jointplot(\"wfh\", \"rain\", data=result, kind=\"reg\",\n",
" size=8, xlim=(0, 15), ylim=(0, 15))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment