Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
taruma_hk84_tabel_ringkasan_jamjaman.ipynb
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "taruma_hk84_tabel_ringkasan_jamjaman.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/taruma/cad07f29ffc025ba9e7801e752be3444/taruma_hk84_tabel_ringkasan_jamjaman.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PijWaYlBOu6E",
"colab_type": "text"
},
"source": [
"Berdasarkan isu [#84](https://github.com/taruma/hidrokit/issues/84): **request: buat ringkasan tabel jam-jaman dengan durasinya**\n",
"\n",
"Referensi isu:\n",
"- `hidrokit.contrib.taruma.hk79` [#79](https://github.com/taruma/hidrokit/issues/79). \\([lihat notebook / manual](https://nbviewer.jupyter.org/gist/taruma/05dab67fac8313a94134ac02d0398897)\\). **request: ambil dataset hujan jam-jaman dari excel**\n",
"- `hidrokit.contrib.taruma.hk73` [#73](https://github.com/taruma/hidrokit/issues/73). \\([lihat notebook / manual](https://nbviewer.jupyter.org/gist/taruma/b00880905f297013f046dad95dc2e284)\\). **request: mengolah berkas dari data bmkg**\n",
"\n",
"Deskripsi Permasalahan:\n",
"- Setelah memperoleh dataset menggunakan `.hk79`, maka data jam-jaman akan diproses lebih lanjut lagi.\n",
"- Dalam isu ini, akan dibuat tabel ringkasan mengenai hujan jam-jaman beserta durasinya.\n",
"- Tabel ringkasan dapat disimpan dalam berbagai format (excel atau csv) dengan menggunakan `pandas`.\n",
"\n",
"Strategi Penyelesaian:\n",
"- Ditentukan/diasumsikan bahwa observasi hanya dilakukan per-24 jam, maka durasi terlama dalam tabel sebesar 24 jam.\n",
"- Mempersiapkan DF (`DataFrame`) yang akan digunakan dan menentukan kolom mana yang akan dibuat ringkasannya.\n",
"- Ambil sub-DF dari DF setiap 24 jam, kemudian diambil informasi kejadian hujan jam-jaman.\n",
" - Membuat `index_grouped` yang merupakan `list of list` index kejadian hujan yang berturut-turut. Fungsi ini telah dikembangkan pada modul `.hk73`.\n",
" - Membuat tiga `list` yang merupakan `list` untuk tanggal observasi, `list` untuk jam observasi, dan `list` untuk nilai hujan observasi.\n",
" - Mengubah tiga `list` tersebut ke dalam bentuk `dictionary`.\n",
"- Ulangi tahap sebelumnya untuk setiap hari (24 jam). Dan menggabungkan seluruh `dictionary` dalam satu peubah.\n",
"- Mengubah `dictionary` menjadi `pandas.DataFrame`. \n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "mxXIWs-iRvPM",
"colab_type": "text"
},
"source": [
"# PERSIAPAN DAN DATASET"
]
},
{
"cell_type": "code",
"metadata": {
"id": "zIWmJH0_Ociy",
"colab_type": "code",
"outputId": "34be884a-9203-4776-b70d-9847046850c2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"try:\n",
" import hidrokit\n",
"except:\n",
" !pip install hidrokit -q\n",
"print(f'hidrokit version: {hidrokit.__version__}')"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"hidrokit version: 0.3.3\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lxLA_9I_R2ej",
"colab_type": "code",
"colab": {}
},
"source": [
"!wget -O aurene_clean.csv \"https://taruma.github.io/assets/hidrokit_dataset/AURENE_STATION_clean.csv\" -q"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uahcisYRSaFc",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"import numpy as np"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "5IZgq0Lkgp0i",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 119
},
"outputId": "1be838a7-6b55-47fe-8dfe-7ae1ce49818e"
},
"source": [
"# Load Dataset\n",
"dataset = pd.read_csv('aurene_clean.csv', index_col=0, parse_dates=True)\n",
"dataset.info()"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 26304 entries, 2000-01-01 00:00:00 to 2002-12-31 23:00:00\n",
"Data columns (total 1 columns):\n",
"AURENE 2759 non-null float64\n",
"dtypes: float64(1)\n",
"memory usage: 411.0 KB\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "D8bCLVRfSdjx",
"colab_type": "text"
},
"source": [
"# KODE"
]
},
{
"cell_type": "code",
"metadata": {
"id": "AbFHYIzwSc0U",
"colab_type": "code",
"colab": {}
},
"source": [
"from hidrokit.contrib.taruma import hk73\n",
"\n",
"def _time_grouped(df, index_grouped, col, date_fmt='%Y-%m-%d', hour_fmt='%H:%M'):\n",
" \"\"\"Return index_grouped as (list of date, list of hour)\"\"\"\n",
" date = []\n",
" hour = []\n",
" for item in index_grouped:\n",
" date_val = df.iloc[[item[0]], col].index.strftime(date_fmt).to_list()\n",
" hour_val = df.iloc[[item[0]], col].index.strftime(hour_fmt).to_list()\n",
" date.append(date_val)\n",
" hour.append(hour_val)\n",
" return date, hour\n",
"\n",
"def _value_grouped(df, index_grouped, col):\n",
" \"\"\"Return index_grouped as list of value list\"\"\"\n",
" value = []\n",
" for item in index_grouped:\n",
" value_val = df.iloc[item, col].to_list()\n",
" value.append(value_val)\n",
" return value\n",
"\n",
"def _dict_grouped(date_list, hour_list, value_list, start=0):\n",
" \"\"\"Join three list and return as dictionary\"\"\"\n",
" item_list = enumerate(zip(date_list, hour_list, value_list), start=start)\n",
" return {\n",
" i: date+hour+value for i, (date, hour, value) in item_list\n",
" }\n",
"\n",
"def summary_hourly(df, column, n_hours=24, \n",
" text_date=['date', 'hour'], as_df=True,\n",
" date_fmt='%Y-%m-%d', hour_fmt='%H:%M'):\n",
" col = df.columns.get_loc(column)\n",
" nrows, _ = df.shape\n",
" results = {}\n",
"\n",
" for i in range(0, nrows, n_hours):\n",
" sub_df = df.iloc[i:i+n_hours]\n",
" ix_array = hk73._get_index1D(~sub_df.iloc[:, col].isna().values)\n",
" ix_grouped = hk73._group_as_list(ix_array)\n",
" date, hour = _time_grouped(sub_df, ix_grouped, \n",
" col, date_fmt=date_fmt, hour_fmt=hour_fmt)\n",
" value = _value_grouped(sub_df, ix_grouped, col)\n",
" each_hours = _dict_grouped(date, hour, value, start=i)\n",
" results.update(each_hours)\n",
"\n",
" if as_df:\n",
" columns_name = text_date + [i for i in range(1, n_hours+1)]\n",
" df_results = pd.DataFrame.from_dict(\n",
" results, orient='index', columns=columns_name\n",
" ) \n",
" return df_results\n",
" else:\n",
" return results"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "hUCLu72zUHE1",
"colab_type": "text"
},
"source": [
"# PENERAPAN"
]
},
{
"cell_type": "code",
"metadata": {
"id": "g4nxkghGU7GM",
"colab_type": "code",
"outputId": "fcff26ab-54ef-4623-907c-9be6d2091cd2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
}
},
"source": [
"summary = summary_hourly(dataset, 'AURENE')\n",
"summary.head()"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" <th>11</th>\n",
" <th>12</th>\n",
" <th>13</th>\n",
" <th>14</th>\n",
" <th>15</th>\n",
" <th>16</th>\n",
" <th>17</th>\n",
" <th>18</th>\n",
" <th>19</th>\n",
" <th>20</th>\n",
" <th>21</th>\n",
" <th>22</th>\n",
" <th>23</th>\n",
" <th>24</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2000-01-01</td>\n",
" <td>08:00</td>\n",
" <td>0.3</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2000-01-02</td>\n",
" <td>08:00</td>\n",
" <td>7.0</td>\n",
" <td>0.5</td>\n",
" <td>0.5</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",
" <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>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>48</th>\n",
" <td>2000-01-03</td>\n",
" <td>00:00</td>\n",
" <td>0.6</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>2000-01-03</td>\n",
" <td>05:00</td>\n",
" <td>0.6</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>2000-01-03</td>\n",
" <td>09:00</td>\n",
" <td>2.2</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date hour 1 2 3 4 5 ... 18 19 20 21 22 23 24\n",
"0 2000-01-01 08:00 0.3 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"24 2000-01-02 08:00 7.0 0.5 0.5 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"48 2000-01-03 00:00 0.6 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"49 2000-01-03 05:00 0.6 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"50 2000-01-03 09:00 2.2 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"\n",
"[5 rows x 26 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "cGdS4rZklC8s",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 514
},
"outputId": "47cc63ec-60f2-40b3-a0cf-c739b3929c19"
},
"source": [
"summary.sample(n=15)"
],
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" <th>11</th>\n",
" <th>12</th>\n",
" <th>13</th>\n",
" <th>14</th>\n",
" <th>15</th>\n",
" <th>16</th>\n",
" <th>17</th>\n",
" <th>18</th>\n",
" <th>19</th>\n",
" <th>20</th>\n",
" <th>21</th>\n",
" <th>22</th>\n",
" <th>23</th>\n",
" <th>24</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>480</th>\n",
" <td>2000-01-21</td>\n",
" <td>00:00</td>\n",
" <td>2.8</td>\n",
" <td>1.2</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",
" <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>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>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15312</th>\n",
" <td>2001-09-30</td>\n",
" <td>16:00</td>\n",
" <td>0.2</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>384</th>\n",
" <td>2000-01-17</td>\n",
" <td>06:00</td>\n",
" <td>0.5</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>937</th>\n",
" <td>2000-02-09</td>\n",
" <td>04:00</td>\n",
" <td>6.0</td>\n",
" <td>3.3</td>\n",
" <td>3.7</td>\n",
" <td>2.9</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",
" <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>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>25032</th>\n",
" <td>2002-11-09</td>\n",
" <td>08:00</td>\n",
" <td>1.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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17593</th>\n",
" <td>2002-01-03</td>\n",
" <td>06:00</td>\n",
" <td>0.5</td>\n",
" <td>0.8</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",
" <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>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>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2856</th>\n",
" <td>2000-04-29</td>\n",
" <td>08:00</td>\n",
" <td>11.8</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2496</th>\n",
" <td>2000-04-14</td>\n",
" <td>11:00</td>\n",
" <td>0.2</td>\n",
" <td>0.2</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",
" <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>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>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19634</th>\n",
" <td>2002-03-29</td>\n",
" <td>13:00</td>\n",
" <td>0.6</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19778</th>\n",
" <td>2002-04-04</td>\n",
" <td>16:00</td>\n",
" <td>0.1</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16512</th>\n",
" <td>2001-11-19</td>\n",
" <td>06:00</td>\n",
" <td>6.6</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1657</th>\n",
" <td>2000-03-10</td>\n",
" <td>08:00</td>\n",
" <td>4.5</td>\n",
" <td>1.5</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",
" <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>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>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20808</th>\n",
" <td>2002-05-17</td>\n",
" <td>13:00</td>\n",
" <td>1.4</td>\n",
" <td>1.3</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",
" <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>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>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15361</th>\n",
" <td>2001-10-02</td>\n",
" <td>13:00</td>\n",
" <td>0.2</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",
" <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>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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22128</th>\n",
" <td>2002-07-11</td>\n",
" <td>12:00</td>\n",
" <td>19.0</td>\n",
" <td>6.5</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>2.2</td>\n",
" <td>4.0</td>\n",
" <td>1.5</td>\n",
" <td>0.8</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",
" <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>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date hour 1 2 3 4 5 ... 18 19 20 21 22 23 24\n",
"480 2000-01-21 00:00 2.8 1.2 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"15312 2001-09-30 16:00 0.2 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"384 2000-01-17 06:00 0.5 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"937 2000-02-09 04:00 6.0 3.3 3.7 2.9 NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"25032 2002-11-09 08:00 1.0 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"17593 2002-01-03 06:00 0.5 0.8 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"2856 2000-04-29 08:00 11.8 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"2496 2000-04-14 11:00 0.2 0.2 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"19634 2002-03-29 13:00 0.6 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"19778 2002-04-04 16:00 0.1 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"16512 2001-11-19 06:00 6.6 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"1657 2000-03-10 08:00 4.5 1.5 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"20808 2002-05-17 13:00 1.4 1.3 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"15361 2001-10-02 13:00 0.2 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN\n",
"22128 2002-07-11 12:00 19.0 6.5 5.0 2.0 2.2 ... NaN NaN NaN NaN NaN NaN NaN\n",
"\n",
"[15 rows x 26 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vtYDmGTeW0cS",
"colab_type": "code",
"outputId": "a49a30be-f6e4-4170-c0b1-9a48dc574104",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
}
},
"source": [
"summary2 = summary_hourly(dataset, 'AURENE', n_hours=10, text_date=['Tanggal', 'Jam'], date_fmt='%d %b %Y', hour_fmt='%I:%M %p')\n",
"summary2.sample(n=10)"
],
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"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>Tanggal</th>\n",
" <th>Jam</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4420</th>\n",
" <td>03 Jul 2000</td>\n",
" <td>06:00 AM</td>\n",
" <td>5.5</td>\n",
" <td>10.0</td>\n",
" <td>41.5</td>\n",
" <td>23.0</td>\n",
" <td>14.5</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>22020</th>\n",
" <td>06 Jul 2002</td>\n",
" <td>03:00 PM</td>\n",
" <td>0.1</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",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19920</th>\n",
" <td>10 Apr 2002</td>\n",
" <td>02:00 AM</td>\n",
" <td>1.0</td>\n",
" <td>2.6</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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25951</th>\n",
" <td>17 Dec 2002</td>\n",
" <td>09:00 AM</td>\n",
" <td>31.8</td>\n",
" <td>0.1</td>\n",
" <td>2.4</td>\n",
" <td>3.1</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>12390</th>\n",
" <td>31 May 2001</td>\n",
" <td>07:00 AM</td>\n",
" <td>1.8</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",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4590</th>\n",
" <td>10 Jul 2000</td>\n",
" <td>12:00 PM</td>\n",
" <td>3.2</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",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11750</th>\n",
" <td>04 May 2001</td>\n",
" <td>02:00 PM</td>\n",
" <td>1.2</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",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18340</th>\n",
" <td>03 Feb 2002</td>\n",
" <td>07:00 AM</td>\n",
" <td>0.4</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",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18330</th>\n",
" <td>02 Feb 2002</td>\n",
" <td>07:00 PM</td>\n",
" <td>0.4</td>\n",
" <td>0.2</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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10950</th>\n",
" <td>01 Apr 2001</td>\n",
" <td>10:00 AM</td>\n",
" <td>1.2</td>\n",
" <td>1.0</td>\n",
" <td>0.7</td>\n",
" <td>0.2</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",
"</div>"
],
"text/plain": [
" Tanggal Jam 1 2 3 4 5 6 7 8 9 10\n",
"4420 03 Jul 2000 06:00 AM 5.5 10.0 41.5 23.0 14.5 NaN NaN NaN NaN NaN\n",
"22020 06 Jul 2002 03:00 PM 0.1 NaN NaN NaN NaN NaN NaN NaN NaN NaN\n",
"19920 10 Apr 2002 02:00 AM 1.0 2.6 NaN NaN NaN NaN NaN NaN NaN NaN\n",
"25951 17 Dec 2002 09:00 AM 31.8 0.1 2.4 3.1 NaN NaN NaN NaN NaN NaN\n",
"12390 31 May 2001 07:00 AM 1.8 NaN NaN NaN NaN NaN NaN NaN NaN NaN\n",
"4590 10 Jul 2000 12:00 PM 3.2 NaN NaN NaN NaN NaN NaN NaN NaN NaN\n",
"11750 04 May 2001 02:00 PM 1.2 NaN NaN NaN NaN NaN NaN NaN NaN NaN\n",
"18340 03 Feb 2002 07:00 AM 0.4 NaN NaN NaN NaN NaN NaN NaN NaN NaN\n",
"18330 02 Feb 2002 07:00 PM 0.4 0.2 NaN NaN NaN NaN NaN NaN NaN NaN\n",
"10950 01 Apr 2001 10:00 AM 1.2 1.0 0.7 0.2 NaN NaN NaN NaN NaN NaN"
]
},
"metadata": {
"tags": []
},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "xtlMdmTlhShI",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 68
},
"outputId": "ae3fa3d7-1033-41d0-a425-2ba0f8171d57"
},
"source": [
"summary3 = summary_hourly(dataset, 'AURENE', n_hours=24, as_df=False)\n",
"print(type(summary3))\n",
"print(len(summary3.keys()))\n",
"print(list(summary3.keys())[:10])"
],
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": [
"<class 'dict'>\n",
"1093\n",
"[0, 24, 48, 49, 50, 72, 96, 97, 120, 144]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EhPfCQ6LVZYK",
"colab_type": "text"
},
"source": [
"# Changelog\n",
"\n",
"```\n",
"- 20191209 - 1.0.0 - Initial\n",
"```\n",
"\n",
"#### Copyright &copy; 2019 [Taruma Sakti Megariansyah](https://taruma.github.io)\n",
"\n",
"Source code in this notebook is licensed under a [MIT License](https://choosealicense.com/licenses/mit/). Data in this notebook is licensed under a [Creative Common Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/). \n"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment