{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "import datetime\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "df = pd.read_pickle(\"riverlevels.pandas.pickle\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "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>Andernach</th>\n",
       "      <th>Bingen</th>\n",
       "      <th>Bonn</th>\n",
       "      <th>Frankfurt Osthafen</th>\n",
       "      <th>Kalkofen Neu</th>\n",
       "      <th>Kaub</th>\n",
       "      <th>Koblenz</th>\n",
       "      <th>Koblenz Up</th>\n",
       "      <th>Mainz</th>\n",
       "      <th>Oberwinter</th>\n",
       "      <th>Oestrich</th>\n",
       "      <th>Raunheim</th>\n",
       "      <th>Rockenau Ska</th>\n",
       "      <th>Speyer</th>\n",
       "      <th>Worms</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1980-12-31 23:15:00+00:00</th>\n",
       "      <td>307.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>199.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-31 23:30:00+00:00</th>\n",
       "      <td>307.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>199.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>290.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-31 23:45:00+00:00</th>\n",
       "      <td>307.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>198.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 00:00:00+00:00</th>\n",
       "      <td>307.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>198.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 00:15:00+00:00</th>\n",
       "      <td>307.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>198.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 00:30:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>198.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 00:45:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>197.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 01:00:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>197.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 01:15:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>197.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>287.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 01:30:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>197.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>287.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 01:45:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>197.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>287.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>152.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 02:00:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>287.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 02:15:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 02:30:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 02:45:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 03:00:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 03:15:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>290.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>151.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 03:30:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>196.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>290.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>150.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 03:45:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>291.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>150.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 04:00:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>290.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 04:15:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 04:30:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 04:45:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>150.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 05:00:00+00:00</th>\n",
       "      <td>309.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>150.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 05:15:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>148.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 05:30:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>289.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 05:45:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 06:00:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 06:15:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>288.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981-01-01 06:30:00+00:00</th>\n",
       "      <td>310.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>195.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>287.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>149.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",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 15:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 16:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 16:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 16:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 16:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 17:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>224.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 17:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 17:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 17:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 18:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>223.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 18:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>222.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 18:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>222.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 18:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>222.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 19:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>222.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 19:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 19:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 19:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 20:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 20:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>221.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 20:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>220.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 20:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>219.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 21:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>219.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 21:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>219.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 21:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>219.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 21:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>218.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 22:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>217.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 22:15:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>217.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 22:30:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>216.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 22:45:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>216.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014-12-31 23:00:00+00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>216.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1192128 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           Andernach  Bingen  Bonn  Frankfurt Osthafen  \\\n",
       "1980-12-31 23:15:00+00:00      307.0     NaN   NaN                 NaN   \n",
       "1980-12-31 23:30:00+00:00      307.0     NaN   NaN                 NaN   \n",
       "1980-12-31 23:45:00+00:00      307.0     NaN   NaN                 NaN   \n",
       "1981-01-01 00:00:00+00:00      307.0     NaN   NaN                 NaN   \n",
       "1981-01-01 00:15:00+00:00      307.0     NaN   NaN                 NaN   \n",
       "1981-01-01 00:30:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 00:45:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 01:00:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 01:15:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 01:30:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 01:45:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 02:00:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 02:15:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 02:30:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 02:45:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 03:00:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 03:15:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 03:30:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 03:45:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 04:00:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 04:15:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 04:30:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 04:45:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 05:00:00+00:00      309.0     NaN   NaN                 NaN   \n",
       "1981-01-01 05:15:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "1981-01-01 05:30:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "1981-01-01 05:45:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "1981-01-01 06:00:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "1981-01-01 06:15:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "1981-01-01 06:30:00+00:00      310.0     NaN   NaN                 NaN   \n",
       "...                              ...     ...   ...                 ...   \n",
       "2014-12-31 15:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 16:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 16:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 16:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 16:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 17:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 17:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 17:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 17:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 18:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 18:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 18:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 18:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 19:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 19:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 19:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 19:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 20:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 20:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 20:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 20:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 21:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 21:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 21:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 21:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 22:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 22:15:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 22:30:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 22:45:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "2014-12-31 23:00:00+00:00        NaN     NaN   NaN                 NaN   \n",
       "\n",
       "                           Kalkofen Neu   Kaub  Koblenz  Koblenz Up  Mainz  \\\n",
       "1980-12-31 23:15:00+00:00           NaN  199.0      NaN         NaN  289.0   \n",
       "1980-12-31 23:30:00+00:00           NaN  199.0      NaN         NaN  290.0   \n",
       "1980-12-31 23:45:00+00:00           NaN  198.0      NaN         NaN  289.0   \n",
       "1981-01-01 00:00:00+00:00           NaN  198.0      NaN         NaN  289.0   \n",
       "1981-01-01 00:15:00+00:00           NaN  198.0      NaN         NaN  289.0   \n",
       "1981-01-01 00:30:00+00:00           NaN  198.0      NaN         NaN  289.0   \n",
       "1981-01-01 00:45:00+00:00           NaN  197.0      NaN         NaN  288.0   \n",
       "1981-01-01 01:00:00+00:00           NaN  197.0      NaN         NaN  288.0   \n",
       "1981-01-01 01:15:00+00:00           NaN  197.0      NaN         NaN  287.0   \n",
       "1981-01-01 01:30:00+00:00           NaN  197.0      NaN         NaN  287.0   \n",
       "1981-01-01 01:45:00+00:00           NaN  197.0      NaN         NaN  287.0   \n",
       "1981-01-01 02:00:00+00:00           NaN  196.0      NaN         NaN  287.0   \n",
       "1981-01-01 02:15:00+00:00           NaN  196.0      NaN         NaN  288.0   \n",
       "1981-01-01 02:30:00+00:00           NaN  196.0      NaN         NaN  289.0   \n",
       "1981-01-01 02:45:00+00:00           NaN  196.0      NaN         NaN  289.0   \n",
       "1981-01-01 03:00:00+00:00           NaN  196.0      NaN         NaN  289.0   \n",
       "1981-01-01 03:15:00+00:00           NaN  196.0      NaN         NaN  290.0   \n",
       "1981-01-01 03:30:00+00:00           NaN  196.0      NaN         NaN  290.0   \n",
       "1981-01-01 03:45:00+00:00           NaN  195.0      NaN         NaN  291.0   \n",
       "1981-01-01 04:00:00+00:00           NaN  195.0      NaN         NaN  290.0   \n",
       "1981-01-01 04:15:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 04:30:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 04:45:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 05:00:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 05:15:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 05:30:00+00:00           NaN  195.0      NaN         NaN  289.0   \n",
       "1981-01-01 05:45:00+00:00           NaN  195.0      NaN         NaN  288.0   \n",
       "1981-01-01 06:00:00+00:00           NaN  195.0      NaN         NaN  288.0   \n",
       "1981-01-01 06:15:00+00:00           NaN  195.0      NaN         NaN  288.0   \n",
       "1981-01-01 06:30:00+00:00           NaN  195.0      NaN         NaN  287.0   \n",
       "...                                 ...    ...      ...         ...    ...   \n",
       "2014-12-31 15:45:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 16:00:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 16:15:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 16:30:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 16:45:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 17:00:00+00:00           NaN    NaN      NaN       224.0    NaN   \n",
       "2014-12-31 17:15:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 17:30:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 17:45:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 18:00:00+00:00           NaN    NaN      NaN       223.0    NaN   \n",
       "2014-12-31 18:15:00+00:00           NaN    NaN      NaN       222.0    NaN   \n",
       "2014-12-31 18:30:00+00:00           NaN    NaN      NaN       222.0    NaN   \n",
       "2014-12-31 18:45:00+00:00           NaN    NaN      NaN       222.0    NaN   \n",
       "2014-12-31 19:00:00+00:00           NaN    NaN      NaN       222.0    NaN   \n",
       "2014-12-31 19:15:00+00:00           NaN    NaN      NaN       221.0    NaN   \n",
       "2014-12-31 19:30:00+00:00           NaN    NaN      NaN       221.0    NaN   \n",
       "2014-12-31 19:45:00+00:00           NaN    NaN      NaN       221.0    NaN   \n",
       "2014-12-31 20:00:00+00:00           NaN    NaN      NaN       221.0    NaN   \n",
       "2014-12-31 20:15:00+00:00           NaN    NaN      NaN       221.0    NaN   \n",
       "2014-12-31 20:30:00+00:00           NaN    NaN      NaN       220.0    NaN   \n",
       "2014-12-31 20:45:00+00:00           NaN    NaN      NaN       219.0    NaN   \n",
       "2014-12-31 21:00:00+00:00           NaN    NaN      NaN       219.0    NaN   \n",
       "2014-12-31 21:15:00+00:00           NaN    NaN      NaN       219.0    NaN   \n",
       "2014-12-31 21:30:00+00:00           NaN    NaN      NaN       219.0    NaN   \n",
       "2014-12-31 21:45:00+00:00           NaN    NaN      NaN       218.0    NaN   \n",
       "2014-12-31 22:00:00+00:00           NaN    NaN      NaN       217.0    NaN   \n",
       "2014-12-31 22:15:00+00:00           NaN    NaN      NaN       217.0    NaN   \n",
       "2014-12-31 22:30:00+00:00           NaN    NaN      NaN       216.0    NaN   \n",
       "2014-12-31 22:45:00+00:00           NaN    NaN      NaN       216.0    NaN   \n",
       "2014-12-31 23:00:00+00:00           NaN    NaN      NaN       216.0    NaN   \n",
       "\n",
       "                           Oberwinter  Oestrich  Raunheim  Rockenau Ska  \\\n",
       "1980-12-31 23:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1980-12-31 23:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1980-12-31 23:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 00:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 00:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 00:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 00:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 01:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 01:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 01:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 01:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 02:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 02:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 02:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 02:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 03:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 03:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 03:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 03:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 04:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 04:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 04:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 04:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 05:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 05:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 05:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 05:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 06:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 06:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "1981-01-01 06:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "...                               ...       ...       ...           ...   \n",
       "2014-12-31 15:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 16:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 16:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 16:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 16:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 17:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 17:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 17:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 17:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 18:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 18:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 18:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 18:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 19:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 19:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 19:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 19:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 20:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 20:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 20:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 20:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 21:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 21:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 21:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 21:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 22:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 22:15:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 22:30:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 22:45:00+00:00         NaN       NaN       NaN           NaN   \n",
       "2014-12-31 23:00:00+00:00         NaN       NaN       NaN           NaN   \n",
       "\n",
       "                           Speyer  Worms  \n",
       "1980-12-31 23:15:00+00:00     NaN  153.0  \n",
       "1980-12-31 23:30:00+00:00     NaN  153.0  \n",
       "1980-12-31 23:45:00+00:00     NaN  153.0  \n",
       "1981-01-01 00:00:00+00:00     NaN  153.0  \n",
       "1981-01-01 00:15:00+00:00     NaN  153.0  \n",
       "1981-01-01 00:30:00+00:00     NaN  152.0  \n",
       "1981-01-01 00:45:00+00:00     NaN  152.0  \n",
       "1981-01-01 01:00:00+00:00     NaN  152.0  \n",
       "1981-01-01 01:15:00+00:00     NaN  152.0  \n",
       "1981-01-01 01:30:00+00:00     NaN  152.0  \n",
       "1981-01-01 01:45:00+00:00     NaN  152.0  \n",
       "1981-01-01 02:00:00+00:00     NaN  151.0  \n",
       "1981-01-01 02:15:00+00:00     NaN  151.0  \n",
       "1981-01-01 02:30:00+00:00     NaN  151.0  \n",
       "1981-01-01 02:45:00+00:00     NaN  151.0  \n",
       "1981-01-01 03:00:00+00:00     NaN  151.0  \n",
       "1981-01-01 03:15:00+00:00     NaN  151.0  \n",
       "1981-01-01 03:30:00+00:00     NaN  150.0  \n",
       "1981-01-01 03:45:00+00:00     NaN  150.0  \n",
       "1981-01-01 04:00:00+00:00     NaN  149.0  \n",
       "1981-01-01 04:15:00+00:00     NaN  149.0  \n",
       "1981-01-01 04:30:00+00:00     NaN  149.0  \n",
       "1981-01-01 04:45:00+00:00     NaN  150.0  \n",
       "1981-01-01 05:00:00+00:00     NaN  150.0  \n",
       "1981-01-01 05:15:00+00:00     NaN  148.0  \n",
       "1981-01-01 05:30:00+00:00     NaN  149.0  \n",
       "1981-01-01 05:45:00+00:00     NaN  149.0  \n",
       "1981-01-01 06:00:00+00:00     NaN  149.0  \n",
       "1981-01-01 06:15:00+00:00     NaN  149.0  \n",
       "1981-01-01 06:30:00+00:00     NaN  149.0  \n",
       "...                           ...    ...  \n",
       "2014-12-31 15:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 16:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 16:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 16:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 16:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 17:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 17:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 17:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 17:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 18:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 18:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 18:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 18:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 19:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 19:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 19:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 19:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 20:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 20:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 20:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 20:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 21:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 21:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 21:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 21:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 22:00:00+00:00     NaN    NaN  \n",
       "2014-12-31 22:15:00+00:00     NaN    NaN  \n",
       "2014-12-31 22:30:00+00:00     NaN    NaN  \n",
       "2014-12-31 22:45:00+00:00     NaN    NaN  \n",
       "2014-12-31 23:00:00+00:00     NaN    NaN  \n",
       "\n",
       "[1192128 rows x 15 columns]"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "andernach=df['Andernach']\n",
    "bingen=df['Bingen']\n",
    "bonn=df['Bonn']\n",
    "frankfurt=df['Frankfurt Osthafen']\n",
    "kalkofen=df['Kalkofen Neu']\n",
    "kaub=df['Kaub']\n",
    "koblenz=df['Koblenz']\n",
    "koblenzup=df['Koblenz Up']\n",
    "mainz=df['Mainz']\n",
    "oberwinter=df['Oberwinter']\n",
    "oestrich=df['Oestrich']\n",
    "raunheim=df['Raunheim']\n",
    "rockenau=df['Rockenau Ska']\n",
    "speyer=df['Speyer']\n",
    "worms=df['Worms']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "#t_andernach3=andernach['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_bingen3=bingen['1997-05-31 23:15:00':'2007-03-31 22:45:00']\n",
    "#t_bonn3=bonn['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_frankfurt3=frankfurt['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_kalkofen3=kalkofen['1997-05-31 23:15:00':'2007-03-31 22:45:00']\n",
    "t_kaub3=kaub['1997-05-31 23:15:00':'2007-03-31 22:45:00']\n",
    "#t_koblenz3=koblenz['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_koblenzup3=koblenzup['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_mainz3=mainz['1997-05-31 23:15:00':'2007-03-31 22:45:00']\n",
    "#t_oberwinter3=oberwinter['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_oestrich3=oestrich['1997-05-31 23:15:00':'2007-03-31 22:45:00']\n",
    "#t_raunheim3=raunheim['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_rockenau3=rockenau['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_speyer3=speyer['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_worms3=worms['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "\n",
    "test3=bonn['1997-05-31 23:15:00':'2007-03-31 22:45:00']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "shifttime = 12\n",
    "shift = shifttime * 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(344639, 5)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_bingen = t_bingen3.shift(shift)\n",
    "t_kalkofen = t_kalkofen3.shift(shift)\n",
    "t_kaub = t_kaub3.shift(shift)\n",
    "t_mainz = t_mainz3.shift(shift)\n",
    "t_oestrich = t_oestrich3.shift(shift)\n",
    "\n",
    "t_bingen_p = t_bingen[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "t_kalkofen_p = t_kalkofen[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "t_kaub_p = t_kaub[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "t_mainz_p = t_mainz[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "t_oestrich_p = t_oestrich[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "\n",
    "test3 = test3[pd.to_datetime('1997-05-31 23:15:00') + pd.Timedelta('24hours'):'2007-03-31 22:45:00']\n",
    "test3 = test3.values\n",
    "\n",
    "train_m = np.concatenate(([t_bingen_p], [t_kalkofen_p], [t_kaub_p], [t_mainz_p], [t_oestrich_p]), axis=0).T\n",
    "train_m.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    bi_shift = t_bingen.shift(i+1)\n",
    "    #print(bi_shift.shape)\n",
    "    bi_shift = bi_shift[pd.to_datetime('1997-05-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2007-03-31 22:45:00')]\n",
    "    #print(np.reshape(bi_shift.values, (-1,1)).shape)\n",
    "    train_m= np.concatenate((train_m, np.reshape(bi_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ka_shift = t_kalkofen.shift(i+1)\n",
    "    ka_shift = ka_shift[pd.to_datetime('1997-05-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2007-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(ka_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    kau_shift = t_kaub.shift(i+1)\n",
    "    kau_shift = kau_shift[pd.to_datetime('1997-05-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2007-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(kau_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ma_shift = t_mainz.shift(i+1)\n",
    "    ma_shift = ma_shift[pd.to_datetime('1997-05-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2007-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(ma_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n",
      "(344639,)\n"
     ]
    }
   ],
   "source": [
    "for i in range(3*4-1):\n",
    "    oe_shift = t_oestrich.shift(i+1)\n",
    "    oe_shift = oe_shift[pd.to_datetime('1997-05-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2007-03-31 22:45:00')]\n",
    "    print(oe_shift.shape)\n",
    "    train_m= np.concatenate((train_m, np.reshape(oe_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(344639, 60)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_m.shape\n",
    "#train_m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train3, X_test3, Y_train3, Y_test3 = train_test_split(train_m, test3, test_size=0.25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train3=np.reshape(X_train3,(X_train3.shape[0],1,X_train3.shape[1]))\n",
    "X_test3=np.reshape(X_test3,(X_test3.shape[0],1,X_test3.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_3 (Dense)              (None, 1536)              93696     \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 1536)              2360832   \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 768)               1180416   \n",
      "_________________________________________________________________\n",
      "dense_6 (Dense)              (None, 1)                 769       \n",
      "=================================================================\n",
      "Total params: 3,635,713\n",
      "Trainable params: 3,635,713\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import keras\n",
    "import keras.layers as layers\n",
    "from keras.layers import Embedding\n",
    "from keras.layers import LSTM\n",
    "from keras.layers import Dense, Dropout\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "input_dim = X_train3.shape[1]  # Number of features\n",
    "\n",
    "model1 = keras.models.Sequential()\n",
    "\n",
    "#model1.add(LSTM(units=4*shift, return_sequences=True, input_shape=(1,input_dim),activation='relu'))\n",
    "#model1.add(LSTM(units=4*shift,activation='relu'))\n",
    "model1.add(Dense(units = 32*shift, input_shape=(input_dim,), activation='relu'))\n",
    "model1.add(Dense(units = 32*shift, activation='relu'))\n",
    "model1.add(Dense(units = 16*shift, activation='relu'))\n",
    "model1.add(Dense(units = 1, activation='relu'))  \n",
    "\n",
    "model1.compile(loss='mean_squared_error', optimizer='adam')\n",
    "\n",
    "model1.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From C:\\Users\\Christoph\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Train on 258479 samples, validate on 86160 samples\n",
      "Epoch 1/3\n",
      "258479/258479 [==============================] - 337s 1ms/step - loss: 519.4644 - val_loss: 457.1992\n",
      "Epoch 2/3\n",
      "258479/258479 [==============================] - 345s 1ms/step - loss: 383.6351 - val_loss: 397.9228\n",
      "Epoch 3/3\n",
      "258479/258479 [==============================] - 342s 1ms/step - loss: 359.2963 - val_loss: 354.5216\n"
     ]
    }
   ],
   "source": [
    "history1 = model1.fit(X_train3,Y_train3, validation_data=(X_test3,Y_test3) , shuffle=False, epochs=3, verbose=True, \n",
    "                      batch_size=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "t_bingen3=bingen['2007-03-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_bonn3=bonn['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_frankfurt3=frankfurt['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_kalkofen3=kalkofen['2007-03-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_kaub3=kaub['2007-03-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_koblenz3=koblenz['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_koblenzup3=koblenzup['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_mainz3=mainz['2007-03-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_oberwinter3=oberwinter['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "t_oestrich3=oestrich['2007-03-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_raunheim3=raunheim['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_rockenau3=rockenau['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_speyer3=speyer['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "#t_worms3=worms['1997-05-31 23:15:00':'2008-03-31 22:45:00']\n",
    "\n",
    "test3=bonn['2007-03-31 23:15:00':'2008-03-31 22:45:00']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(35039, 5)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_bingen = t_bingen3.shift(shift)\n",
    "t_kalkofen = t_kalkofen3.shift(shift)\n",
    "t_kaub = t_kaub3.shift(shift)\n",
    "t_mainz = t_mainz3.shift(shift)\n",
    "t_oestrich = t_oestrich3.shift(shift)\n",
    "\n",
    "t_bingen_p = t_bingen[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "t_kalkofen_p = t_kalkofen[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "t_kaub_p = t_kaub[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "t_mainz_p = t_mainz[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "t_oestrich_p = t_oestrich[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "\n",
    "test3 = test3[pd.to_datetime('2007-03-31 23:15:00') + pd.Timedelta('24hours'):'2008-03-31 22:45:00']\n",
    "test3 = test3.values\n",
    "\n",
    "train_m = np.concatenate(([t_bingen_p], [t_kalkofen_p], [t_kaub_p], [t_mainz_p], [t_oestrich_p]), axis=0).T\n",
    "train_m.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    bi_shift = t_bingen.shift(i+1)\n",
    "    #print(bi_shift.shape)\n",
    "    bi_shift = bi_shift[pd.to_datetime('2007-03-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2008-03-31 22:45:00')]\n",
    "    #print(np.reshape(bi_shift.values, (-1,1)).shape)\n",
    "    train_m= np.concatenate((train_m, np.reshape(bi_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ka_shift = t_kalkofen.shift(i+1)\n",
    "    ka_shift = ka_shift[pd.to_datetime('2007-03-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2008-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(ka_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    kau_shift = t_kaub.shift(i+1)\n",
    "    kau_shift = kau_shift[pd.to_datetime('2007-03-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2008-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(kau_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ma_shift = t_mainz.shift(i+1)\n",
    "    ma_shift = ma_shift[pd.to_datetime('2007-03-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2008-03-31 22:45:00')]\n",
    "    #print(b_shift)\n",
    "    train_m= np.concatenate((train_m, np.reshape(ma_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n",
      "(35039,)\n"
     ]
    }
   ],
   "source": [
    "for i in range(3*4-1):\n",
    "    oe_shift = t_oestrich.shift(i+1)\n",
    "    oe_shift = oe_shift[pd.to_datetime('2007-03-31 23:15:00')+pd.Timedelta('24hour'):pd.to_datetime('2008-03-31 22:45:00')]\n",
    "    print(oe_shift.shape)\n",
    "    train_m= np.concatenate((train_m, np.reshape(oe_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "#train_m=np.reshape(train_m,(train_m.shape[0],1,train_m.shape[1]))\n",
    "test_plot = model1.predict(train_m)\n",
    "real_plot = test3\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "460.5848497069147"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "mean_squared_error(test_plot,real_plot)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXeYZGWd7z/vqTqVOk9PTw49iZkhzOAwoyCCigIqq7C6uOqqoCL3yuq6d++a1jWCa9pV2b3qyi4qBgxrREBRECQoYYABYWaAYWJP7OncXemE9/7xvqdCd1V3he6qDufzPPNM1am3T52urvM9v/OLQkqJj4+Pj8/sxaj3Afj4+Pj4TC2+0Pv4+PjMcnyh9/Hx8Znl+ELv4+PjM8vxhd7Hx8dnluMLvY+Pj88sxxd6Hx8fn1mOL/Q+Pj4+sxxf6H18fHxmOcGJFggh1gM/ytm0Gvg48B29vRPYD7xRStknhBDA9cBrgDhwpZTysfHeY/78+bKzs7OCw/fx8fGZuzz66KMnpZQdE60T5bRAEEIEgMPAi4C/BXqllJ8TQnwYaJNSfkgI8RrgfSihfxFwvZTyRePtd+vWrXL79u0lH4ePj4+PDwghHpVSbp1oXbmum1cAz0spDwCXAjfp7TcBl+nHlwLfkYoHgVYhxOIy38fHx8fHZ5IoV+jfBPxAP14opTwKoP9foLcvBQ7l/EyX3paHEOJqIcR2IcT27u7uMg/Dx8fHx6dUShZ6IUQIeB3wPxMtLbBtjH9ISnmDlHKrlHJrR8eELiYfHx8fnwqZMBibw6uBx6SUx/Xz40KIxVLKo9o1c0Jv7wKW5/zcMuBI9Yfq4+MzG7Asi66uLpLJZL0PZcYQiURYtmwZpmlW9PPlCP2bybptAG4BrgA+p///Zc729wohfogKxg54Lh4fHx+frq4umpqa6OzsRCXp+YyHlJKenh66urpYtWpVRfsoyXUjhIgBFwI/y9n8OeBCIcRz+rXP6e23A3uBPcB/AddUdGQ+Pj6zkmQySXt7uy/yJSKEoL29vao7oJIseillHGgfta0HlYUzeq1EpV76+Pj4FMQX+fKo9vPyK2N96sKJwSRX3bSdpOXU+1B8fGY9vtD71IUb7t3LnbuOc8fTx+p9KD4+04rGxsZJ36cv9D514fhQCoCU5db5SHx8Zj++0PvUBctWAp+0fdeNT3249tpr2bBhAxdeeCFvfvOb+dd//Vde9rKX4bVjOXnyJF4PLsdx+MAHPsC2bdvYtGkT3/jGNwA4evQo559/PmeeeSann3469913H47jcOWVV3L66adzxhln8OUvfxmA559/nle96lWcddZZnHfeeezevRuAffv2cc4557Bt2zY+9rGPTcnvWk56pY/PpOHqHkuJtC/0c5lP/eppdh4ZnNR9nrqkmU+89rRx12zfvp2f/vSnPP7449i2zZYtWzjrrLOKrr/xxhtpaWnhkUceIZVKce6553LRRRfxs5/9jIsvvpiPfvSjOI5DPB5nx44dHD58mKeeegqA/v5+AK6++mr+8z//k3Xr1vHQQw9xzTXX8Pvf/573v//9vOc97+Htb387X/3qVyfvg8jBF3qfuuAJfdwXep86cP/993PppZcSjUYBeO1rXzvu+t/+9rc8+eST/OQnPwFgYGCA5557jm3btvHOd74Ty7K47LLLOPPMM1m9ejV79+7lfe97H5dccgkXXXQRw8PD/PGPf+Tyyy/P7DOVUu7LBx54gJ/+9KcAvO1tb+NDH/rQpP++vtD71IWk9s37WTdzm4ks76miWNfeYDCI6+rvZk7eupSS//iP/+Diiy8e8zP33nsvt912G29729v4wAc+wNvf/naeeOIJ7rjjDr761a/y4x//mK985Su0trayY8eOgu871emmvo/epy6MpG0AEr7Q+9SBl7zkJfzqV78imUwyPDzMbbfdBkBnZyePPvooQMZ6B7j44ov5+te/jmVZADz77LOMjIxw4MABFixYwLvf/W7e9a538dhjj3Hy5Elc1+UNb3gD1157LY899hjNzc2sWrWK//kf1SpMSskTTzwBwLnnnssPf/hDAL7//e9Pye/rW/Q+dcHzzfs+ep96sG3bNl73utexefNmVq5cydatW2lpaeEf//EfeeMb38h3v/tdLrjggsz6q666iv3797NlyxaklHR0dPCLX/yCe+65hy9+8YuYpkljYyPf+c53OHz4MO94xzsydwaf/exnASXi73nPe7juuuuwLIs3velNbN68meuvv563vOUtXH/99bzhDW+Ykt+3rMEjU4U/eGTucd4Xfs+h3gSXnrmE69/0gnofjk8N2bVrFxs3bqz3YTA8PExjYyPxeJzzzz+fG264gS1bttT7sIpS6HMrdfCI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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_plot = np.reshape(test_plot, (-1,))\n",
    "real_plot = np.reshape(real_plot, (-1,))\n",
    "plt.plot(test_plot, label=\"guessed\")\n",
    "plt.plot(real_plot, label=\"real\")\n",
    "plt.legend()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(35136, 5)"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_bi = bingen['2000-01-01 00:00:00':'2000-12-31 23:45:00']\n",
    "test_ka = kalkofen['2000-01-01 00:00:00':'2000-12-31 23:45:00']\n",
    "test_kau = kaub['2000-01-01 00:00:00':'2000-12-31 23:45:00']\n",
    "test_ma = mainz['2000-01-01 00:00:00':'2000-12-31 23:45:00']\n",
    "test_oe = oestrich['2000-01-01 00:00:00':'2000-12-31 23:45:00']\n",
    "\n",
    "test_bonn = bonn[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hours'):pd.to_datetime('2000-12-31 23:45:00')+pd.Timedelta('15hours')]\n",
    "test_bonn = test_bonn.values\n",
    "\n",
    "inputtt=np.concatenate(([test_bi],[test_ka],[test_kau],[test_ma], [test_oe]), axis=0).T\n",
    "inputtt.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(35076,)\n"
     ]
    },
    {
     "ename": "ValueError",
     "evalue": "all the input array dimensions except for the concatenation axis must match exactly",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-136-93c05ab1510b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      3\u001b[0m     \u001b[0mbi_shift\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mbi_shift\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_datetime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'2000-01-01 00:00:00'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTimedelta\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'15hour'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_datetime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'2000-12-31 23:45:00'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m     \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbi_shift\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m     \u001b[0minputtt\u001b[0m\u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minputtt\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbi_shift\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m: all the input array dimensions except for the concatenation axis must match exactly"
     ]
    }
   ],
   "source": [
    "for i in range(3*4-1):\n",
    "    bi_shift = test_bi.shift(i+1)\n",
    "    bi_shift = bi_shift[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hour'):pd.to_datetime('2000-12-31 23:45:00')]\n",
    "    print(bi_shift.shape)\n",
    "    inputtt= np.concatenate((inputtt, np.reshape(bi_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ka_shift = test_ka.shift(i+1)\n",
    "    ka_shift = ka_shift[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hour'):pd.to_datetime('2000-12-31 23:45:00')]\n",
    "    #print(b_shift)\n",
    "    inputtt= np.concatenate((inputtt, np.reshape(ka_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    kau_shift = test_kau.shift(i+1)\n",
    "    kau_shift = kau_shift[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hour'):pd.to_datetime('2000-12-31 23:45:00')]\n",
    "    #print(b_shift)\n",
    "    inputtt= np.concatenate((inputtt, np.reshape(kau_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    ma_shift = test_ma.shift(i+1)\n",
    "    ma_shift = ma_shift[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hour'):pd.to_datetime('2000-12-31 23:45:00')]\n",
    "    #print(b_shift)\n",
    "    inputtt= np.concatenate((inputtt, np.reshape(ma_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(3*4-1):\n",
    "    oe_shift = test_oe.shift(i+1)\n",
    "    oe_shift = oe_shift[pd.to_datetime('2000-01-01 00:00:00')+pd.Timedelta('15hour'):pd.to_datetime('2000-12-31 23:45:00')]\n",
    "    #print(b_shift)\n",
    "    inputtt= np.concatenate((inputtt, np.reshape(oe_shift.values, (-1,1))), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Error when checking input: expected lstm_3_input to have shape (1, 60) but got array with shape (1, 5)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-131-f890e7c5b838>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0minputtt\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minputtt\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minputtt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0minputtt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mgr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel1\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minputtt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[0mgr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0mgr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"guessed\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, x, batch_size, verbose, steps)\u001b[0m\n\u001b[0;32m   1147\u001b[0m                              'argument.')\n\u001b[0;32m   1148\u001b[0m         \u001b[1;31m# Validate user data.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1149\u001b[1;33m         \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_standardize_user_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1150\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstateful\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1151\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m>\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\engine\\training.py\u001b[0m in \u001b[0;36m_standardize_user_data\u001b[1;34m(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)\u001b[0m\n\u001b[0;32m    749\u001b[0m             \u001b[0mfeed_input_shapes\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    750\u001b[0m             \u001b[0mcheck_batch_axis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m,\u001b[0m  \u001b[1;31m# Don't enforce the batch size.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 751\u001b[1;33m             exception_prefix='input')\n\u001b[0m\u001b[0;32m    752\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    753\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0my\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\engine\\training_utils.py\u001b[0m in \u001b[0;36mstandardize_input_data\u001b[1;34m(data, names, shapes, check_batch_axis, exception_prefix)\u001b[0m\n\u001b[0;32m    136\u001b[0m                             \u001b[1;34m': expected '\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mnames\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m' to have shape '\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    137\u001b[0m                             \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m' but got array with shape '\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 138\u001b[1;33m                             str(data_shape))\n\u001b[0m\u001b[0;32m    139\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    140\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: Error when checking input: expected lstm_3_input to have shape (1, 60) but got array with shape (1, 5)"
     ]
    }
   ],
   "source": [
    "inputtt = np.reshape(inputtt,(inputtt.shape[0],1,inputtt.shape[1]))\n",
    "gr = model1.predict(inputtt)\n",
    "gr.shape\n",
    "gr = np.reshape(gr, (-1,))\n",
    "plt.plot(gr, label=\"guessed\")\n",
    "plt.plot(test_bonn, label=\"real\")\n",
    "plt.legend()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
