Skip to content

Instantly share code, notes, and snippets.

@taruma
Last active April 13, 2024 04:57
Show Gist options
  • Save taruma/b00880905f297013f046dad95dc2e284 to your computer and use it in GitHub Desktop.
Save taruma/b00880905f297013f046dad95dc2e284 to your computer and use it in GitHub Desktop.
taruma_hk73_bmkg.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "taruma_hk73_bmkg.ipynb",
"provenance": [],
"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/b00880905f297013f046dad95dc2e284/taruma_hk73_bmkg.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "C7uQLNtOfUqQ"
},
"source": [
"Berdasarkan isu [#73](https://github.com/taruma/hidrokit/issues/73): **request: mengolah berkas dari data bmkg**\n",
"\n",
"Deskripsi:\n",
"- mengolah berkas excel yang diperoleh dari data online bmkg untuk siap dipakai\n",
"- memeriksa kondisi data\n",
"\n",
"Fungsi yang diharapkan:\n",
"\n",
"__Umum / General__\n",
"- Memeriksa apakah data lengkap atau tidak? Jika tidak, data apa dan pada tanggal berapa?\n",
"- Memeriksa apakah data tidak ada data / tidak ada pengukuran (9999) atau data tidak diukur (8888)? Jika ada, data apa dan pada tanggal berapa?\n",
"- Menampilkan \"potongan\" baris yang tidak memiliki data / tidak melakukan pengukuran?\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CAXMkTucfi5r"
},
"source": [
"# DATASET"
]
},
{
"cell_type": "code",
"metadata": {
"id": "BppR0eMif41Y"
},
"source": [
"# Upload berkas excel bmkg\n",
"FILE_NAME = \"data_bmkg_jawa_barat_96783_1975_2000_stasiun_geofisika_bandung.xlsx\"\n",
"DATASET_PATH = '/content/' + FILE_NAME"
],
"execution_count": 1,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "rzXF7v0BtnYq"
},
"source": [
"# FUNGSI"
]
},
{
"cell_type": "code",
"source": [
"\"\"\"\n",
"This module provides functions for reading and analyzing\n",
" BMKG (Meteorology, Climatology, and Geophysics Agency) data.\n",
"\n",
"For more information, refer to the manual:\n",
" https://gist.github.com/taruma/b00880905f297013f046dad95dc2e284\n",
"\n",
"Functions:\n",
"- read_bmkg_excel(io): Read BMKG data from an Excel file.\n",
"- has_nan_values(dataframe): Check if the given dataset contains any NaN values.\n",
"- get_missing_data_indices(nan_indicator_vector): Get the indices of missing data\n",
" in the given nan_indicator_vector.\n",
"- get_nan_indices_by_column(dataframe): Get the indices of missing values (NaN)\n",
" for each column in a DataFrame.\n",
"- get_unrecorded_indices(dataframe): Get the indices of unrecorded data in the given dataframe.\n",
"- get_nan_indices_if_exists(dataframe): Returns the indices of NaN values\n",
" in the given dataframe if NaN values exist.\n",
"- get_columns_with_nan_values(dataframe): Get the columns with NaN values in the given dataframe.\n",
"- group_consecutive_elements(input_list): Groups consecutive elements in the input list.\n",
"- format_group_indices(group_list, indices=None, format_date=\"%Y%m%d\", date_range_format=\"{}-{}\"):\n",
" Formats the group indices based on the given parameters.\n",
"\n",
"Deprecated Functions:\n",
"- _read_bmkg(*args, **kwargs): Deprecated version of read_bmkg_excel.\n",
"- _have_nan(*args, **kwargs): Deprecated version of has_nan_values.\n",
"- _get_index1D(*args, **kwargs): Deprecated version of get_missing_data_indices.\n",
"- _get_nan(*args, **kwargs): Deprecated version of get_nan_indices_by_column.\n",
"- _get_missing(*args, **kwargs): Deprecated version of get_unrecorded_indices.\n",
"- _check_nan(*args, **kwargs): Deprecated version of get_nan_indices_if_exists.\n",
"- _get_nan_columns(*args, **kwargs): Deprecated version of get_columns_with_nan_values.\n",
"- _group_as_list(*args, **kwargs): Deprecated version of group_consecutive_elements.\n",
"- _group_as_index(group_list, index=None, date_format=\"%Y%m%d\", format_date=\"{}-{}\"):\n",
" Deprecated version of format_group_indices.\n",
"\"\"\""
],
"metadata": {
"id": "PVXaK7BEqP93",
"outputId": "8bed83ae-5c67-479f-ab99-a56447765e2e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 122
}
},
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'\\nThis module provides functions for reading and analyzing \\n BMKG (Meteorology, Climatology, and Geophysics Agency) data.\\n\\nFor more information, refer to the manual: \\n https://gist.github.com/taruma/b00880905f297013f046dad95dc2e284\\n\\nFunctions:\\n- read_bmkg_excel(io): Read BMKG data from an Excel file.\\n- has_nan_values(dataframe): Check if the given dataset contains any NaN values.\\n- get_missing_data_indices(nan_indicator_vector): Get the indices of missing data \\n in the given nan_indicator_vector.\\n- get_nan_indices_by_column(dataframe): Get the indices of missing values (NaN) \\n for each column in a DataFrame.\\n- get_unrecorded_indices(dataframe): Get the indices of unrecorded data in the given dataframe.\\n- get_nan_indices_if_exists(dataframe): Returns the indices of NaN values \\n in the given dataframe if NaN values exist.\\n- get_columns_with_nan_values(dataframe): Get the columns with NaN values in the given dataframe.\\n- group_consecutive_elements(input_list): Groups consecutive elements in the input list.\\n- format_group_indices(group_list, indices=None, format_date=\"%Y%m%d\", date_range_format=\"{}-{}\"): \\n Formats the group indices based on the given parameters.\\n\\nDeprecated Functions:\\n- _read_bmkg(*args, **kwargs): Deprecated version of read_bmkg_excel.\\n- _have_nan(*args, **kwargs): Deprecated version of has_nan_values.\\n- _get_index1D(*args, **kwargs): Deprecated version of get_missing_data_indices.\\n- _get_nan(*args, **kwargs): Deprecated version of get_nan_indices_by_column.\\n- _get_missing(*args, **kwargs): Deprecated version of get_unrecorded_indices.\\n- _check_nan(*args, **kwargs): Deprecated version of get_nan_indices_if_exists.\\n- _get_nan_columns(*args, **kwargs): Deprecated version of get_columns_with_nan_values.\\n- _group_as_list(*args, **kwargs): Deprecated version of group_consecutive_elements.\\n- _group_as_index(group_list, index=None, date_format=\"%Y%m%d\", format_date=\"{}-{}\"): \\n Deprecated version of format_group_indices.\\n'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 2
}
]
},
{
"cell_type": "code",
"source": [
"import warnings\n",
"import functools\n",
"\n",
"\n",
"def deprecated(new_func_name):\n",
" \"\"\"\n",
" Decorator to mark a function as deprecated.\n",
"\n",
" Parameters:\n",
" - new_func_name (str): The name of the new function that should be used instead.\n",
"\n",
" Returns:\n",
" - wrapper (function): The decorated function.\n",
"\n",
" Example:\n",
" @deprecated(\"new_function\")\n",
" def old_function():\n",
" pass\n",
"\n",
" The above example will generate a warning when `old_function` is called,\n",
" suggesting to use `new_function` instead.\n",
" \"\"\"\n",
"\n",
" def decorator(func):\n",
" @functools.wraps(func)\n",
" def wrapper(*args, **kwargs):\n",
" warnings.warn(\n",
" f\"{func.__name__} is deprecated, use {new_func_name} instead\",\n",
" DeprecationWarning,\n",
" )\n",
" return func(*args, **kwargs)\n",
"\n",
" return wrapper\n",
"\n",
" return decorator"
],
"metadata": {
"id": "J7Ca2-JWji3I"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "8MwMIU0bwEwK"
},
"source": [
"from itertools import groupby\n",
"from operator import itemgetter\n",
"from typing import List\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"\n",
"def read_bmkg_excel(io):\n",
" \"\"\"\n",
" Read BMKG data from an Excel file.\n",
"\n",
" Parameters:\n",
" - io: str or file-like object\n",
" The file path or file-like object to read the Excel data from.\n",
"\n",
" Returns:\n",
" - pandas.DataFrame\n",
" The data read from the Excel file.\n",
"\n",
" \"\"\"\n",
" return pd.read_excel(\n",
" io,\n",
" skiprows=8,\n",
" skipfooter=16,\n",
" header=0,\n",
" index_col=0,\n",
" parse_dates=True,\n",
" date_format=\"%d-%m-%Y\",\n",
" )\n",
"\n",
"\n",
"def _has_nan_values(dataframe):\n",
" \"\"\"\n",
" Check if the given dataset contains any NaN values.\n",
"\n",
" Parameters:\n",
" dataframe (pandas.DataFrame): The dataset to check for NaN values.\n",
"\n",
" Returns:\n",
" bool: True if the dataset contains NaN values, False otherwise.\n",
" \"\"\"\n",
" return bool(dataframe.isna().any().any())\n",
"\n",
"\n",
"def _get_missing_data_indices(nan_indicator_vector):\n",
" \"\"\"\n",
" Get the indices of missing data in the given nan_indicator_vector.\n",
"\n",
" Parameters:\n",
" nan_indicator_vector (numpy.ndarray): A boolean array indicating missing data.\n",
"\n",
" Returns:\n",
" numpy.ndarray: An array of indices where missing data is present.\n",
" \"\"\"\n",
" return np.argwhere(nan_indicator_vector).reshape(\n",
" -1,\n",
" )\n",
"\n",
"\n",
"def _get_nan_indices_by_column(dataframe):\n",
" \"\"\"\n",
" Get the indices of missing values (NaN) for each column in a DataFrame.\n",
"\n",
" Parameters:\n",
" dataframe (pandas.DataFrame): The input DataFrame.\n",
"\n",
" Returns:\n",
" dict: A dictionary where the keys are the column names and the values are lists of indices\n",
" where missing values occur in each column.\n",
" \"\"\"\n",
" nan = {}\n",
" for col in dataframe.columns:\n",
" nan[col] = _get_missing_data_indices(dataframe[col].isna().values).tolist()\n",
" return nan\n",
"\n",
"\n",
"def _get_unrecorded_indices(dataframe):\n",
" \"\"\"\n",
" Get the indices of unrecorded data in the given dataframe.\n",
"\n",
" Parameters:\n",
" dataframe (pandas.DataFrame): The input dataframe.\n",
"\n",
" Returns:\n",
" dict: A dictionary where the keys are the column names and the values are\n",
" the indices of unrecorded data in each column.\n",
" \"\"\"\n",
" unrecorded_indices = {}\n",
"\n",
" for col in dataframe.columns:\n",
" masking = (dataframe[col] == 8888) | (dataframe[col] == 9999)\n",
" unrecorded_indices[col] = _get_missing_data_indices(masking.values)\n",
"\n",
" return unrecorded_indices\n",
"\n",
"\n",
"def _get_nan_indices_if_exists(dataframe):\n",
" \"\"\"\n",
" Returns the indices of NaN values in the given dataframe if NaN values exist.\n",
"\n",
" Parameters:\n",
" dataframe (pandas.DataFrame): The input dataframe.\n",
"\n",
" Returns:\n",
" dict or None: A dictionary with keys as column names and values as lists of\n",
" indices where missing values occur, or None if no NaN values exist.\n",
" \"\"\"\n",
" if _has_nan_values(dataframe):\n",
" return _get_nan_indices_by_column(dataframe)\n",
" else:\n",
" return None\n",
"\n",
"\n",
"def _get_columns_with_nan_values(dataframe):\n",
" return dataframe.columns[dataframe.isna().any()].tolist()\n",
"\n",
"\n",
"def _group_consecutive_elements(input_list: List) -> List[List]:\n",
" \"\"\"\n",
" Groups consecutive elements in the input list.\n",
"\n",
" Args:\n",
" input_list (List): The list of elements to be grouped.\n",
"\n",
" Returns:\n",
" List[List]: A list of lists, where each inner list contains consecutive elements\n",
" from the input list.\n",
"\n",
" Example:\n",
" >>> input_list = [1, 2, 3, 5, 6, 8, 9]\n",
" >>> _group_consecutive_elements(input_list)\n",
" [[1, 2, 3], [5, 6], [8, 9]]\n",
" \"\"\"\n",
" # based on https://stackoverflow.com/a/15276206\n",
" group_list = []\n",
" for _, g in groupby(enumerate(input_list), lambda x: x[0] - x[1]):\n",
" single_list = sorted(list(map(itemgetter(1), g)))\n",
" group_list.append(single_list)\n",
" return group_list\n",
"\n",
"\n",
"def _format_group_indices(\n",
" group_list, indices=None, format_date=\"%Y%m%d\", date_range_format=\"{}-{}\"\n",
"):\n",
" \"\"\"\n",
" Formats the group indices based on the given parameters.\n",
"\n",
" Args:\n",
" group_list (list): The list of groups.\n",
" indices (pd.Index or pd.DatetimeIndex, optional): The indices to format. Defaults to None.\n",
" format_date (str, optional): The date format string. Defaults to \"%Y%m%d\".\n",
" date_range_format (str, optional): The format string for date ranges. Defaults to \"{}-{}\".\n",
"\n",
" Returns:\n",
" list: The formatted group indices.\n",
" \"\"\"\n",
" formatted_indices = []\n",
" is_date_index = isinstance(indices, pd.DatetimeIndex)\n",
"\n",
" for item in group_list:\n",
" if len(item) == 1:\n",
" if is_date_index:\n",
" formatted_indices.append(indices[item[0]].strftime(format_date))\n",
" else:\n",
" formatted_indices.append(indices[item[0]])\n",
" else:\n",
" if is_date_index:\n",
" formatted_indices.append(\n",
" date_range_format.format(\n",
" indices[item[0]].strftime(format_date),\n",
" indices[item[-1]].strftime(format_date),\n",
" )\n",
" )\n",
" else:\n",
" formatted_indices.append(\n",
" date_range_format.format(indices[item[0]], indices[item[-1]])\n",
" )\n",
"\n",
" return formatted_indices\n",
"\n",
"\n",
"# for backward compatibility\n",
"@deprecated(\"read_bmkg_excel\")\n",
"def _read_bmkg(*args, **kwargs):\n",
" return read_bmkg_excel(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_has_nan_values\")\n",
"def _have_nan(*args, **kwargs):\n",
" return _has_nan_values(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_get_missing_data_indices\")\n",
"def _get_index1D(*args, **kwargs):\n",
" return _get_missing_data_indices(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_get_nan_indices_by_column\")\n",
"def _get_nan(*args, **kwargs):\n",
" return _get_nan_indices_by_column(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_get_unrecorded_indices\")\n",
"def _get_missing(*args, **kwargs):\n",
" return _get_unrecorded_indices(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_get_nan_indices_if_exists\")\n",
"def _check_nan(*args, **kwargs):\n",
" return _get_nan_indices_if_exists(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_get_columns_with_nan_values\")\n",
"def _get_nan_columns(*args, **kwargs):\n",
" return _get_columns_with_nan_values(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_group_consecutive_elements\")\n",
"def _group_as_list(*args, **kwargs):\n",
" return _group_consecutive_elements(*args, **kwargs)\n",
"\n",
"\n",
"@deprecated(\"_format_group_indices\")\n",
"def _group_as_index(\n",
" group_list, index=None, date_format=\"%Y%m%d\", format_date=\"{}-{}\"\n",
"):\n",
" return _format_group_indices(\n",
" group_list,\n",
" indices=index,\n",
" format_date=date_format,\n",
" date_range_format=format_date,\n",
" )\n"
],
"execution_count": 4,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "zdCnFSrSgN-p"
},
"source": [
"# PENGGUNAAN"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XvkIulXMenWc"
},
"source": [
"## Fungsi `_read_bmkg`\n",
"\n",
"Tujuan: Impor berkas excel bmkg ke dataframe"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Y_x0pjyAgQZ8",
"outputId": "996a165b-bdde-4bc4-ffd5-d4ff9da95ceb",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
}
},
"source": [
"dataset = _read_bmkg(DATASET_PATH)\n",
"dataset.head()"
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _read_bmkg is deprecated, use read_bmkg_excel instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Tn Tx Tavg RH_avg RR ss ff_x ddd_x ff_avg ddd_car\n",
"Tanggal \n",
"1975-01-01 20.0 28.8 23.4 76.0 0.0 7.5 NaN NaN NaN NaN\n",
"1975-01-02 19.0 28.6 23.7 72.0 0.0 3.3 NaN NaN NaN NaN\n",
"1975-01-03 20.0 28.9 23.3 78.0 0.0 5.1 NaN NaN NaN NaN\n",
"1975-01-04 21.0 30.0 23.7 82.0 0.0 5.7 NaN NaN NaN NaN\n",
"1975-01-05 19.0 28.8 22.2 86.0 8.0 3.1 NaN NaN NaN NaN"
],
"text/html": [
"\n",
" <div id=\"df-5f0d15b8-4684-429c-a6b6-0c4d9e35a8dd\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Tn</th>\n",
" <th>Tx</th>\n",
" <th>Tavg</th>\n",
" <th>RH_avg</th>\n",
" <th>RR</th>\n",
" <th>ss</th>\n",
" <th>ff_x</th>\n",
" <th>ddd_x</th>\n",
" <th>ff_avg</th>\n",
" <th>ddd_car</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Tanggal</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1975-01-01</th>\n",
" <td>20.0</td>\n",
" <td>28.8</td>\n",
" <td>23.4</td>\n",
" <td>76.0</td>\n",
" <td>0.0</td>\n",
" <td>7.5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-01-02</th>\n",
" <td>19.0</td>\n",
" <td>28.6</td>\n",
" <td>23.7</td>\n",
" <td>72.0</td>\n",
" <td>0.0</td>\n",
" <td>3.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-01-03</th>\n",
" <td>20.0</td>\n",
" <td>28.9</td>\n",
" <td>23.3</td>\n",
" <td>78.0</td>\n",
" <td>0.0</td>\n",
" <td>5.1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-01-04</th>\n",
" <td>21.0</td>\n",
" <td>30.0</td>\n",
" <td>23.7</td>\n",
" <td>82.0</td>\n",
" <td>0.0</td>\n",
" <td>5.7</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-01-05</th>\n",
" <td>19.0</td>\n",
" <td>28.8</td>\n",
" <td>22.2</td>\n",
" <td>86.0</td>\n",
" <td>8.0</td>\n",
" <td>3.1</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>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5f0d15b8-4684-429c-a6b6-0c4d9e35a8dd')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5f0d15b8-4684-429c-a6b6-0c4d9e35a8dd button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5f0d15b8-4684-429c-a6b6-0c4d9e35a8dd');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-ccf7d95c-d0da-4732-9eaf-47f8d80c7b05\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-ccf7d95c-d0da-4732-9eaf-47f8d80c7b05')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-ccf7d95c-d0da-4732-9eaf-47f8d80c7b05 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "dataset",
"summary": "{\n \"name\": \"dataset\",\n \"rows\": 9497,\n \"fields\": [\n {\n \"column\": \"Tanggal\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1975-01-01 00:00:00\",\n \"max\": \"2000-12-31 00:00:00\",\n \"num_unique_values\": 9497,\n \"samples\": [\n \"1979-02-22 00:00:00\",\n \"1998-03-12 00:00:00\",\n \"1986-02-07 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tn\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.4858238194831097,\n \"min\": 11.0,\n \"max\": 27.0,\n \"num_unique_values\": 15,\n \"samples\": [\n 25.0,\n 22.0,\n 20.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tx\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.454382948790635,\n \"min\": 16.0,\n \"max\": 34.2,\n \"num_unique_values\": 112,\n \"samples\": [\n 29.0,\n 23.0,\n 26.2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tavg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.9191089152951978,\n \"min\": 17.8,\n \"max\": 28.2,\n \"num_unique_values\": 76,\n \"samples\": [\n 21.9,\n 21.4,\n 24.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RH_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 7.631941314135817,\n \"min\": 44.0,\n \"max\": 96.0,\n \"num_unique_values\": 51,\n \"samples\": [\n 44.0,\n 96.0,\n 47.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RR\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1777.728251958913,\n \"min\": 0.0,\n \"max\": 8888.0,\n \"num_unique_values\": 443,\n \"samples\": [\n 29.5,\n 1.1,\n 39.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ss\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.199949675862862,\n \"min\": 0.0,\n \"max\": 8.0,\n \"num_unique_values\": 81,\n \"samples\": [\n 1.1,\n 7.5,\n 4.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.3764084491523396,\n \"min\": 0.0,\n \"max\": 44.0,\n \"num_unique_values\": 14,\n \"samples\": [\n 10.0,\n 0.0,\n 4.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 104.14385919761148,\n \"min\": 0.0,\n \"max\": 360.0,\n \"num_unique_values\": 11,\n \"samples\": [\n 315.0,\n 22.0,\n 45.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.0996532687360956,\n \"min\": 0.0,\n \"max\": 11.0,\n \"num_unique_values\": 9,\n \"samples\": [\n 8.0,\n 0.0,\n 11.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_car\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 8,\n \"samples\": [\n \"N \",\n \"NW\",\n \"W \"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "3PJwY1ODe5XS",
"outputId": "53ad85f3-0d3e-44a5-cc7e-74dd78b8dda0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
}
},
"source": [
"dataset.tail()"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Tn Tx Tavg RH_avg RR ss ff_x ddd_x ff_avg ddd_car\n",
"Tanggal \n",
"2000-12-27 19.0 28.6 22.9 79.0 8.8 3.3 3.0 270.0 3.0 W \n",
"2000-12-28 19.0 30.2 23.3 78.0 3.1 5.2 3.0 270.0 3.0 W \n",
"2000-12-29 19.0 29.8 23.3 76.0 0.0 6.0 3.0 270.0 3.0 W \n",
"2000-12-30 21.0 28.4 23.8 77.0 0.0 2.2 0.0 0.0 0.0 N \n",
"2000-12-31 20.0 29.2 22.6 82.0 9.6 5.4 3.0 360.0 3.0 N "
],
"text/html": [
"\n",
" <div id=\"df-5aefbac1-1133-43f1-94c7-d8c2e6685b65\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Tn</th>\n",
" <th>Tx</th>\n",
" <th>Tavg</th>\n",
" <th>RH_avg</th>\n",
" <th>RR</th>\n",
" <th>ss</th>\n",
" <th>ff_x</th>\n",
" <th>ddd_x</th>\n",
" <th>ff_avg</th>\n",
" <th>ddd_car</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Tanggal</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-12-27</th>\n",
" <td>19.0</td>\n",
" <td>28.6</td>\n",
" <td>22.9</td>\n",
" <td>79.0</td>\n",
" <td>8.8</td>\n",
" <td>3.3</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-28</th>\n",
" <td>19.0</td>\n",
" <td>30.2</td>\n",
" <td>23.3</td>\n",
" <td>78.0</td>\n",
" <td>3.1</td>\n",
" <td>5.2</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-29</th>\n",
" <td>19.0</td>\n",
" <td>29.8</td>\n",
" <td>23.3</td>\n",
" <td>76.0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-30</th>\n",
" <td>21.0</td>\n",
" <td>28.4</td>\n",
" <td>23.8</td>\n",
" <td>77.0</td>\n",
" <td>0.0</td>\n",
" <td>2.2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>N</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-31</th>\n",
" <td>20.0</td>\n",
" <td>29.2</td>\n",
" <td>22.6</td>\n",
" <td>82.0</td>\n",
" <td>9.6</td>\n",
" <td>5.4</td>\n",
" <td>3.0</td>\n",
" <td>360.0</td>\n",
" <td>3.0</td>\n",
" <td>N</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5aefbac1-1133-43f1-94c7-d8c2e6685b65')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5aefbac1-1133-43f1-94c7-d8c2e6685b65 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5aefbac1-1133-43f1-94c7-d8c2e6685b65');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-f5e16650-0030-4d23-89c4-fd413caa1e87\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-f5e16650-0030-4d23-89c4-fd413caa1e87')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-f5e16650-0030-4d23-89c4-fd413caa1e87 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"summary": "{\n \"name\": \"dataset\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"Tanggal\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2000-12-27 00:00:00\",\n \"max\": \"2000-12-31 00:00:00\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"2000-12-28 00:00:00\",\n \"2000-12-31 00:00:00\",\n \"2000-12-29 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tn\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8944271909999159,\n \"min\": 19.0,\n \"max\": 21.0,\n \"num_unique_values\": 3,\n \"samples\": [\n 19.0,\n 21.0,\n 20.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tx\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7668115805072325,\n \"min\": 28.4,\n \"max\": 30.2,\n \"num_unique_values\": 5,\n \"samples\": [\n 30.2,\n 29.2,\n 29.8\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tavg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.4549725266430931,\n \"min\": 22.6,\n \"max\": 23.8,\n \"num_unique_values\": 4,\n \"samples\": [\n 23.3,\n 22.6,\n 22.9\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RH_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.3021728866442674,\n \"min\": 76.0,\n \"max\": 82.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 78.0,\n 82.0,\n 76.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RR\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.657252408878008,\n \"min\": 0.0,\n \"max\": 9.6,\n \"num_unique_values\": 4,\n \"samples\": [\n 3.1,\n 9.6,\n 8.8\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ss\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.600624877977348,\n \"min\": 2.2,\n \"max\": 6.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 5.2,\n 5.4,\n 6.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.3416407864998738,\n \"min\": 0.0,\n \"max\": 3.0,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.0,\n 3.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 136.49175799292792,\n \"min\": 0.0,\n \"max\": 360.0,\n \"num_unique_values\": 3,\n \"samples\": [\n 270.0,\n 0.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.3416407864998738,\n \"min\": 0.0,\n \"max\": 3.0,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.0,\n 3.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_car\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"N \",\n \"W \"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qY3RdEtXe885"
},
"source": [
"## Fungsi `_have_nan()`\n",
"\n",
"Tujuan: Memeriksa apakah di dalam tabel memiliki nilai yang hilang (np.nan)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "6zmDPDupfG7x",
"outputId": "25128f17-3834-41cf-9532-ddd7ffbe4b21",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_have_nan(dataset)"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _have_nan is deprecated, use _has_nan_values instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"execution_count": 7
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xcj4-4--f8P7"
},
"source": [
"## Fungsi `_get_index1D()`\n",
"\n",
"Tujuan: Memperoleh index data yang hilang untuk setiap array"
]
},
{
"cell_type": "code",
"metadata": {
"id": "wHdn_BWdgEZc",
"outputId": "0949ceab-7359-4271-9d71-124a2e2aac3a",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_get_index1D(dataset['RH_avg'].isna().values)"
],
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_index1D is deprecated, use _get_missing_data_indices instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 781, 962, 990, 991, 1010, 1117, 1236, 1264, 2831, 2835, 2839,\n",
" 2860, 3255, 3346, 3568, 4977, 5028, 5368, 5706, 5786, 5791, 5961,\n",
" 5962, 6059, 6122, 6131, 6350, 7212, 7217, 8283, 8289, 8290, 8291,\n",
" 8297, 8304, 8320, 8321, 8322, 8325, 8326, 8328, 8329, 8332, 8338,\n",
" 8339, 8340, 8405, 8565])"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XXFJxVfqfJ8N"
},
"source": [
"## Fungsi `_get_nan()`\n",
"\n",
"Tujuan: Memperoleh index data yang hilang untuk setiap kolom dalam bentuk `dictionary`"
]
},
{
"cell_type": "code",
"metadata": {
"id": "7RrL9iG0fT9P",
"outputId": "d6c8ef24-c68c-48de-faa3-0f54505211a2",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_get_nan(dataset).keys()"
],
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_nan is deprecated, use _get_nan_indices_by_column instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"dict_keys(['Tn', 'Tx', 'Tavg', 'RH_avg', 'RR', 'ss', 'ff_x', 'ddd_x', 'ff_avg', 'ddd_car'])"
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "tJG-IJ_8fYVF",
"outputId": "bcc9c8dc-fb14-47ee-ac7d-43358876387f",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"print(_get_nan(dataset)['RH_avg'])"
],
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[781, 962, 990, 991, 1010, 1117, 1236, 1264, 2831, 2835, 2839, 2860, 3255, 3346, 3568, 4977, 5028, 5368, 5706, 5786, 5791, 5961, 5962, 6059, 6122, 6131, 6350, 7212, 7217, 8283, 8289, 8290, 8291, 8297, 8304, 8320, 8321, 8322, 8325, 8326, 8328, 8329, 8332, 8338, 8339, 8340, 8405, 8565]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_nan is deprecated, use _get_nan_indices_by_column instead\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vAW_kMxEh_6N"
},
"source": [
"## Fungsi `_get_nan_columns()`\n",
"\n",
"Tujuan: Memperoleh nama kolom yang memiliki nilai yang hilang `NaN`."
]
},
{
"cell_type": "code",
"metadata": {
"id": "V-sHtOb1h_aT",
"outputId": "83d2183c-a41a-4ee9-d578-352484ff0f88",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_get_nan_columns(dataset)"
],
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_nan_columns is deprecated, use _get_columns_with_nan_values instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['Tn', 'Tavg', 'RH_avg', 'ss', 'ff_x', 'ddd_x', 'ff_avg', 'ddd_car']"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "L09Uw9DcfkjG"
},
"source": [
"## Fungsi `_check_nan()`\n",
"\n",
"Tujuan: Gabungan dari `_have_nan()` dan `_get_nan()`. Memeriksa apakah dataset memiliki `NaN`, jika iya, memberikan nilai hasil `_get_nan()`, jika tidak memberikan nilai `None`."
]
},
{
"cell_type": "code",
"metadata": {
"id": "yE2uLd0shma4",
"outputId": "a5443c09-1626-4069-874f-5a3311c47d79",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_check_nan(dataset).items()"
],
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _check_nan is deprecated, use _get_nan_indices_if_exists instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"dict_items([('Tn', [3255, 3256, 3470, 4876, 4877, 4878, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587]), ('Tx', []), ('Tavg', [781, 962, 1117, 1236, 1264, 4977, 8565]), ('RH_avg', [781, 962, 990, 991, 1010, 1117, 1236, 1264, 2831, 2835, 2839, 2860, 3255, 3346, 3568, 4977, 5028, 5368, 5706, 5786, 5791, 5961, 5962, 6059, 6122, 6131, 6350, 7212, 7217, 8283, 8289, 8290, 8291, 8297, 8304, 8320, 8321, 8322, 8325, 8326, 8328, 8329, 8332, 8338, 8339, 8340, 8405, 8565]), ('RR', []), ('ss', [1103, 1296, 1520, 1526, 1815, 2461, 2512, 2518, 2521, 2551, 2570, 2571, 2580, 2602, 2682, 2683, 2711, 2732, 2733, 2794, 2797, 2817, 2820, 2844, 2920, 2921, 2939, 2943, 2947, 2948, 2999, 3055, 3069, 3121, 3166, 3224, 3247, 3248, 3304, 3309, 3353, 3419, 3423, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3584, 3588, 3600, 3614, 3626, 3633, 3634, 3635, 3697, 3713, 3714, 3735, 3977, 4037, 4048, 4059, 4180, 4207, 4269, 4277, 4299, 4383, 4407, 4421, 4531, 4536, 4730, 4734, 4771, 4909, 4917, 4973, 5036, 5043, 5099, 5118, 5143, 5313, 5415, 5461, 5483, 5501, 5614, 5863, 5871, 5877, 5878, 5892, 5897, 5950, 5951, 5971, 6155, 6185, 6188, 6207, 6229, 6232, 6254, 6322, 6323, 6363, 6389, 6603, 6604, 6758, 6892, 6912, 6955, 6960, 6961, 6986, 7020, 7021, 7022, 7098, 7120, 7235, 7277, 7278, 7289, 7308, 7318, 7368, 7427, 7475, 7634, 7651, 7670, 7673, 7674, 7675, 7685, 7708, 7762, 7774, 7833, 7963, 7997, 8006, 8017, 8018, 8057, 8058, 8069, 8091, 8139, 8148, 8524, 8667, 8671, 8692, 8698, 8706, 8733, 8766, 8767, 8791, 8792, 8798, 8891, 8896, 8899, 8923, 8931, 9008, 9068, 9077, 9112, 9116, 9124, 9125, 9148, 9156, 9157, 9285, 9300, 9303, 9420, 9421, 9431, 9436, 9437, 9460]), ('ff_x', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 3561, 3713, 4208, 4502, 5569]), ('ddd_x', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 3530, 3561, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 4502, 5569, 7513, 7744, 7748, 7759, 8418]), ('ff_avg', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 3145, 4502, 5569]), ('ddd_car', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 2922, 3145, 3530, 4502, 7056, 7309, 7432, 7435, 7439, 7454, 7455, 7462, 7482, 7483, 7484, 7513, 7559, 7566, 7573, 7578, 7579, 7585, 7587, 7593, 7597, 7609, 7611, 7614, 7615, 7622, 7634, 7682, 7744, 7748, 7759, 7767, 7779, 7800, 7806, 7896, 7904, 7906, 7919, 7922, 7979, 8109, 8156, 8233, 8238, 8279, 8281, 8282, 8300, 8305, 8320, 8324, 8348, 8358, 8410, 8432, 8439, 8499, 8576, 8643, 8998, 9000, 9011, 9013, 9014, 9030, 9034, 9052, 9223, 9313])])"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "66nIQJcLhviR",
"outputId": "bd151b4e-74bc-4ede-bdae-79270ed7c6c0",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"# Jika tidak memiliki nilai nan\n",
"print(_check_nan(dataset.drop(_get_nan_columns(dataset), axis=1)))"
],
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"None\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_nan_columns is deprecated, use _get_columns_with_nan_values instead\n",
" warnings.warn(\n",
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _check_nan is deprecated, use _get_nan_indices_if_exists instead\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TwvE5jb6iPQp"
},
"source": [
"## Fungsi `_group_as_list()`\n",
"\n",
"Tujuan: Mengelompokkan kelompok array yang bersifat kontinu (nilainya berurutan) dalam masing-masing list.\n",
"\n",
"Referensi: https://stackoverflow.com/a/15276206 (dimodifikasi untuk Python 3.x dan kemudahan membaca)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "YrEFvgtri0UO",
"outputId": "d925ff68-f944-457c-ecd5-52d426861321",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"missing_dict = _get_nan(dataset)\n",
"missing_RH_avg = missing_dict['RH_avg']\n",
"print(missing_RH_avg)"
],
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[781, 962, 990, 991, 1010, 1117, 1236, 1264, 2831, 2835, 2839, 2860, 3255, 3346, 3568, 4977, 5028, 5368, 5706, 5786, 5791, 5961, 5962, 6059, 6122, 6131, 6350, 7212, 7217, 8283, 8289, 8290, 8291, 8297, 8304, 8320, 8321, 8322, 8325, 8326, 8328, 8329, 8332, 8338, 8339, 8340, 8405, 8565]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_nan is deprecated, use _get_nan_indices_by_column instead\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "KHstC8RfjG1H",
"outputId": "48f9447e-8423-45a4-a9e4-814ca0c35ef8",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"print(_group_as_list(missing_RH_avg))"
],
"execution_count": 15,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[[781], [962], [990, 991], [1010], [1117], [1236], [1264], [2831], [2835], [2839], [2860], [3255], [3346], [3568], [4977], [5028], [5368], [5706], [5786], [5791], [5961, 5962], [6059], [6122], [6131], [6350], [7212], [7217], [8283], [8289, 8290, 8291], [8297], [8304], [8320, 8321, 8322], [8325, 8326], [8328, 8329], [8332], [8338, 8339, 8340], [8405], [8565]]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _group_as_list is deprecated, use _group_consecutive_elements instead\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5Ui1dYZwhFQn"
},
"source": [
"## Fungsi `_group_as_index()`\n",
"\n",
"Tujuan: Mengubah hasil pengelompokkan menjadi jenis index dataset (dalam kasus ini dalam bentuk tanggal dibandingkan dalam bentuk angka-index dataset)."
]
},
{
"cell_type": "code",
"metadata": {
"id": "Lab87rO_jaUJ",
"outputId": "8c246961-1150-4a04-ae8c-33c9565023a8",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_group_as_index(_group_as_list(missing_RH_avg), index=dataset.index, date_format='%d %b %Y')"
],
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _group_as_list is deprecated, use _group_consecutive_elements instead\n",
" warnings.warn(\n",
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _group_as_index is deprecated, use _format_group_indices instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['20 Feb 1977',\n",
" '20 Aug 1977',\n",
" '17 Sep 1977-18 Sep 1977',\n",
" '07 Oct 1977',\n",
" '22 Jan 1978',\n",
" '21 May 1978',\n",
" '18 Jun 1978',\n",
" '02 Oct 1982',\n",
" '06 Oct 1982',\n",
" '10 Oct 1982',\n",
" '31 Oct 1982',\n",
" '30 Nov 1983',\n",
" '29 Feb 1984',\n",
" '08 Oct 1984',\n",
" '17 Aug 1988',\n",
" '07 Oct 1988',\n",
" '12 Sep 1989',\n",
" '16 Aug 1990',\n",
" '04 Nov 1990',\n",
" '09 Nov 1990',\n",
" '28 Apr 1991-29 Apr 1991',\n",
" '04 Aug 1991',\n",
" '06 Oct 1991',\n",
" '15 Oct 1991',\n",
" '21 May 1992',\n",
" '30 Sep 1994',\n",
" '05 Oct 1994',\n",
" '05 Sep 1997',\n",
" '11 Sep 1997-13 Sep 1997',\n",
" '19 Sep 1997',\n",
" '26 Sep 1997',\n",
" '12 Oct 1997-14 Oct 1997',\n",
" '17 Oct 1997-18 Oct 1997',\n",
" '20 Oct 1997-21 Oct 1997',\n",
" '24 Oct 1997',\n",
" '30 Oct 1997-01 Nov 1997',\n",
" '05 Jan 1998',\n",
" '14 Jun 1998']"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8rZUej-Bl-Rd"
},
"source": [
"## Fungsi `_get_missing()`\n",
"\n",
"Tujuan: Memperoleh index yang memiliki nilai tidak terukur (bernilai `8888` atau `9999`) untuk setiap kolomnya"
]
},
{
"cell_type": "code",
"metadata": {
"id": "rwNiOYjSl9wE",
"outputId": "39b49fe8-2006-4659-b8f3-35c73a3ecbfb",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_get_missing(dataset)"
],
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_missing is deprecated, use _get_unrecorded_indices instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'Tn': array([], dtype=int64),\n",
" 'Tx': array([], dtype=int64),\n",
" 'Tavg': array([], dtype=int64),\n",
" 'RH_avg': array([], dtype=int64),\n",
" 'RR': array([ 29, 32, 33, 35, 47, 57, 60, 69, 98, 113, 124,\n",
" 135, 138, 163, 164, 199, 227, 276, 310, 336, 338, 349,\n",
" 360, 387, 427, 436, 465, 467, 479, 491, 512, 514, 517,\n",
" 552, 603, 692, 700, 702, 744, 754, 756, 760, 765, 779,\n",
" 799, 858, 897, 912, 974, 1019, 1058, 1107, 1108, 1132, 1150,\n",
" 1179, 1199, 1202, 1214, 1216, 1227, 1237, 1246, 1247, 1258, 1306,\n",
" 1379, 1407, 1410, 1412, 1440, 1459, 1478, 1522, 1532, 1545, 1588,\n",
" 1613, 1675, 1809, 1827, 1828, 1830, 1832, 1834, 1853, 1854, 1856,\n",
" 1859, 1867, 1869, 1871, 1876, 1885, 1905, 1906, 1909, 1913, 1928,\n",
" 1929, 1966, 1978, 1996, 2024, 2031, 2043, 2045, 2054, 2071, 2075,\n",
" 2086, 2087, 2100, 2130, 2177, 2189, 2194, 2227, 2231, 2235, 2253,\n",
" 2271, 2275, 2278, 2295, 2313, 2322, 2323, 2337, 2340, 2341, 2349,\n",
" 2356, 2367, 2377, 2379, 2388, 2401, 2410, 2423, 2442, 2443, 2453,\n",
" 2456, 2462, 2549, 2550, 2578, 2582, 2583, 2595, 2682, 2708, 2743,\n",
" 2759, 2762, 2771, 2785, 2818, 2872, 2931, 2995, 2999, 3028, 3033,\n",
" 3070, 3071, 3213, 3290, 3296, 3336, 3356, 3472, 3473, 3477, 3495,\n",
" 3501, 3510, 3521, 3568, 3583, 3608, 3637, 3638, 3652, 3665, 3668,\n",
" 3729, 3740, 3755, 3765, 3772, 3786, 3792, 3804, 3826, 3833, 3854,\n",
" 3895, 3943, 3965, 3975, 4018, 4031, 4043, 4080, 4148, 4160, 4172,\n",
" 4173, 4182, 4331, 4333, 4389, 4418, 4468, 4483, 4496, 4672, 4733,\n",
" 4741, 4775, 4782, 4832, 4852, 4875, 4928, 4973, 5062, 5064, 5082,\n",
" 5086, 5135, 5262, 5265, 5280, 5320, 5349, 5350, 5397, 5538, 5574,\n",
" 5694, 5718, 5805, 5809, 5822, 5849, 5858, 5869, 5904, 5915, 5927,\n",
" 5934, 5949, 5965, 6133, 6139, 6173, 6196, 6205, 6207, 6251, 6259,\n",
" 6309, 6313, 6356, 6370, 6484, 6514, 6515, 6516, 6547, 6595, 6606,\n",
" 6608, 6620, 6676, 6688, 6692, 6700, 6770, 6880, 6924, 6926, 6935,\n",
" 6946, 7052, 7208, 7263, 7276, 7283, 7294, 7315, 7326, 7336, 7351,\n",
" 7367, 7375, 7406, 7415, 7417, 7429, 7430, 7549, 7567, 7638, 7646,\n",
" 7663, 7779, 7809, 7833, 7894, 7915, 8015, 8028, 8031, 8040, 8044,\n",
" 8057, 8063, 8087, 8090, 8091, 8092, 8147, 8150, 8177, 8185, 8191,\n",
" 8199, 8200, 8208, 8220, 8255, 8277, 8350, 8351, 8360, 8383, 8388,\n",
" 8390, 8413, 8454, 8457, 8459, 8486, 8488, 8496, 8501, 8503, 8514,\n",
" 8519, 8539, 8548, 8565, 8572, 8603, 8611, 8641, 8650, 8701, 8727,\n",
" 8784, 8798, 8804, 8805, 8807, 8826, 8882, 8923, 8974, 9002, 9081,\n",
" 9114, 9127, 9149, 9153, 9155, 9171, 9193, 9201, 9230, 9302, 9308,\n",
" 9312, 9348, 9374, 9398, 9404, 9415, 9442, 9461, 9462, 9476, 9481,\n",
" 9482]),\n",
" 'ss': array([], dtype=int64),\n",
" 'ff_x': array([], dtype=int64),\n",
" 'ddd_x': array([], dtype=int64),\n",
" 'ff_avg': array([], dtype=int64),\n",
" 'ddd_car': array([], dtype=int64)}"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DGRLHHnFj3b_"
},
"source": [
"# Penerapan"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7kzIN8r_mb1Q"
},
"source": [
"## Menampilkan index yang bermasalah\n",
"\n",
"Tujuan: Setelah memperoleh index dari hasil `_get_missing()` atau `_get_nan()`, bisa menampilkan potongan index tersebut dalam dataframe."
]
},
{
"cell_type": "code",
"metadata": {
"id": "qAk3dPyHOYk2",
"outputId": "8841c973-ecee-4d25-f756-99a5357af3d9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 490
}
},
"source": [
"dataset.iloc[_get_missing(dataset)['RR']]"
],
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_missing is deprecated, use _get_unrecorded_indices instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Tn Tx Tavg RH_avg RR ss ff_x ddd_x ff_avg ddd_car\n",
"Tanggal \n",
"1975-01-30 20.0 28.0 23.0 89.0 8888.0 4.3 NaN NaN NaN NaN\n",
"1975-02-02 20.0 26.6 23.0 86.0 8888.0 0.5 NaN NaN NaN NaN\n",
"1975-02-03 20.0 27.9 23.0 84.0 8888.0 3.8 NaN NaN NaN NaN\n",
"1975-02-05 19.0 27.6 22.7 84.0 8888.0 2.9 NaN NaN NaN NaN\n",
"1975-02-17 19.0 24.8 21.9 86.0 8888.0 0.7 NaN NaN NaN NaN\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"2000-11-26 21.0 25.0 22.6 84.0 8888.0 0.1 3.0 270.0 2.0 W \n",
"2000-11-27 20.0 29.0 23.3 80.0 8888.0 4.4 5.0 270.0 3.0 W \n",
"2000-12-11 21.0 29.4 24.3 77.0 8888.0 4.0 4.0 270.0 3.0 W \n",
"2000-12-16 20.0 29.4 23.8 72.0 8888.0 4.9 5.0 270.0 3.0 W \n",
"2000-12-17 19.0 28.2 23.7 79.0 8888.0 4.9 5.0 270.0 3.0 W \n",
"\n",
"[397 rows x 10 columns]"
],
"text/html": [
"\n",
" <div id=\"df-f0f7d355-7af7-4c7a-b0cb-59f5f3a46eff\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Tn</th>\n",
" <th>Tx</th>\n",
" <th>Tavg</th>\n",
" <th>RH_avg</th>\n",
" <th>RR</th>\n",
" <th>ss</th>\n",
" <th>ff_x</th>\n",
" <th>ddd_x</th>\n",
" <th>ff_avg</th>\n",
" <th>ddd_car</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Tanggal</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1975-01-30</th>\n",
" <td>20.0</td>\n",
" <td>28.0</td>\n",
" <td>23.0</td>\n",
" <td>89.0</td>\n",
" <td>8888.0</td>\n",
" <td>4.3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-02-02</th>\n",
" <td>20.0</td>\n",
" <td>26.6</td>\n",
" <td>23.0</td>\n",
" <td>86.0</td>\n",
" <td>8888.0</td>\n",
" <td>0.5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-02-03</th>\n",
" <td>20.0</td>\n",
" <td>27.9</td>\n",
" <td>23.0</td>\n",
" <td>84.0</td>\n",
" <td>8888.0</td>\n",
" <td>3.8</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-02-05</th>\n",
" <td>19.0</td>\n",
" <td>27.6</td>\n",
" <td>22.7</td>\n",
" <td>84.0</td>\n",
" <td>8888.0</td>\n",
" <td>2.9</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975-02-17</th>\n",
" <td>19.0</td>\n",
" <td>24.8</td>\n",
" <td>21.9</td>\n",
" <td>86.0</td>\n",
" <td>8888.0</td>\n",
" <td>0.7</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-11-26</th>\n",
" <td>21.0</td>\n",
" <td>25.0</td>\n",
" <td>22.6</td>\n",
" <td>84.0</td>\n",
" <td>8888.0</td>\n",
" <td>0.1</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>2.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-11-27</th>\n",
" <td>20.0</td>\n",
" <td>29.0</td>\n",
" <td>23.3</td>\n",
" <td>80.0</td>\n",
" <td>8888.0</td>\n",
" <td>4.4</td>\n",
" <td>5.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-11</th>\n",
" <td>21.0</td>\n",
" <td>29.4</td>\n",
" <td>24.3</td>\n",
" <td>77.0</td>\n",
" <td>8888.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-16</th>\n",
" <td>20.0</td>\n",
" <td>29.4</td>\n",
" <td>23.8</td>\n",
" <td>72.0</td>\n",
" <td>8888.0</td>\n",
" <td>4.9</td>\n",
" <td>5.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-12-17</th>\n",
" <td>19.0</td>\n",
" <td>28.2</td>\n",
" <td>23.7</td>\n",
" <td>79.0</td>\n",
" <td>8888.0</td>\n",
" <td>4.9</td>\n",
" <td>5.0</td>\n",
" <td>270.0</td>\n",
" <td>3.0</td>\n",
" <td>W</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>397 rows × 10 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f0f7d355-7af7-4c7a-b0cb-59f5f3a46eff')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-f0f7d355-7af7-4c7a-b0cb-59f5f3a46eff button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-f0f7d355-7af7-4c7a-b0cb-59f5f3a46eff');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-d599fccb-e615-4bd6-9fc7-b640d6230f0d\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d599fccb-e615-4bd6-9fc7-b640d6230f0d')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-d599fccb-e615-4bd6-9fc7-b640d6230f0d button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"summary": "{\n \"name\": \"dataset\",\n \"rows\": 397,\n \"fields\": [\n {\n \"column\": \"Tanggal\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1975-01-30 00:00:00\",\n \"max\": \"2000-12-17 00:00:00\",\n \"num_unique_values\": 397,\n \"samples\": [\n \"1980-12-17 00:00:00\",\n \"1993-04-24 00:00:00\",\n \"1989-08-24 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tn\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.3514928366078944,\n \"min\": 13.0,\n \"max\": 22.0,\n \"num_unique_values\": 10,\n \"samples\": [\n 13.0,\n 19.0,\n 16.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tx\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.564603788141466,\n \"min\": 16.0,\n \"max\": 32.6,\n \"num_unique_values\": 69,\n \"samples\": [\n 27.1,\n 28.0,\n 29.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Tavg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.845311648836912,\n \"min\": 20.4,\n \"max\": 25.7,\n \"num_unique_values\": 41,\n \"samples\": [\n 23.8,\n 23.5,\n 22.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RH_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 6.253278263801212,\n \"min\": 56.0,\n \"max\": 95.0,\n \"num_unique_values\": 34,\n \"samples\": [\n 81.0,\n 91.0,\n 90.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"RR\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 8888.0,\n \"max\": 8888.0,\n \"num_unique_values\": 1,\n \"samples\": [\n 8888.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ss\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.191180638991747,\n \"min\": 0.0,\n \"max\": 8.0,\n \"num_unique_values\": 79,\n \"samples\": [\n 5.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.4935572024046992,\n \"min\": 0.0,\n \"max\": 13.0,\n \"num_unique_values\": 9,\n \"samples\": [\n 0.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_x\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 105.67132331634998,\n \"min\": 0.0,\n \"max\": 360.0,\n \"num_unique_values\": 9,\n \"samples\": [\n 180.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ff_avg\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.1323560570509896,\n \"min\": 0.0,\n \"max\": 6.0,\n \"num_unique_values\": 6,\n \"samples\": [\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ddd_car\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"W \"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1QSK1QI3nAK9",
"outputId": "428b681f-58c2-4648-c6cb-0b3e3f0864e7",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_group_as_list(_get_missing(dataset)['RR'])"
],
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _get_missing is deprecated, use _get_unrecorded_indices instead\n",
" warnings.warn(\n",
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _group_as_list is deprecated, use _group_consecutive_elements instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[[29],\n",
" [32, 33],\n",
" [35],\n",
" [47],\n",
" [57],\n",
" [60],\n",
" [69],\n",
" [98],\n",
" [113],\n",
" [124],\n",
" [135],\n",
" [138],\n",
" [163, 164],\n",
" [199],\n",
" [227],\n",
" [276],\n",
" [310],\n",
" [336],\n",
" [338],\n",
" [349],\n",
" [360],\n",
" [387],\n",
" [427],\n",
" [436],\n",
" [465],\n",
" [467],\n",
" [479],\n",
" [491],\n",
" [512],\n",
" [514],\n",
" [517],\n",
" [552],\n",
" [603],\n",
" [692],\n",
" [700],\n",
" [702],\n",
" [744],\n",
" [754],\n",
" [756],\n",
" [760],\n",
" [765],\n",
" [779],\n",
" [799],\n",
" [858],\n",
" [897],\n",
" [912],\n",
" [974],\n",
" [1019],\n",
" [1058],\n",
" [1107, 1108],\n",
" [1132],\n",
" [1150],\n",
" [1179],\n",
" [1199],\n",
" [1202],\n",
" [1214],\n",
" [1216],\n",
" [1227],\n",
" [1237],\n",
" [1246, 1247],\n",
" [1258],\n",
" [1306],\n",
" [1379],\n",
" [1407],\n",
" [1410],\n",
" [1412],\n",
" [1440],\n",
" [1459],\n",
" [1478],\n",
" [1522],\n",
" [1532],\n",
" [1545],\n",
" [1588],\n",
" [1613],\n",
" [1675],\n",
" [1809],\n",
" [1827, 1828],\n",
" [1830],\n",
" [1832],\n",
" [1834],\n",
" [1853, 1854],\n",
" [1856],\n",
" [1859],\n",
" [1867],\n",
" [1869],\n",
" [1871],\n",
" [1876],\n",
" [1885],\n",
" [1905, 1906],\n",
" [1909],\n",
" [1913],\n",
" [1928, 1929],\n",
" [1966],\n",
" [1978],\n",
" [1996],\n",
" [2024],\n",
" [2031],\n",
" [2043],\n",
" [2045],\n",
" [2054],\n",
" [2071],\n",
" [2075],\n",
" [2086, 2087],\n",
" [2100],\n",
" [2130],\n",
" [2177],\n",
" [2189],\n",
" [2194],\n",
" [2227],\n",
" [2231],\n",
" [2235],\n",
" [2253],\n",
" [2271],\n",
" [2275],\n",
" [2278],\n",
" [2295],\n",
" [2313],\n",
" [2322, 2323],\n",
" [2337],\n",
" [2340, 2341],\n",
" [2349],\n",
" [2356],\n",
" [2367],\n",
" [2377],\n",
" [2379],\n",
" [2388],\n",
" [2401],\n",
" [2410],\n",
" [2423],\n",
" [2442, 2443],\n",
" [2453],\n",
" [2456],\n",
" [2462],\n",
" [2549, 2550],\n",
" [2578],\n",
" [2582, 2583],\n",
" [2595],\n",
" [2682],\n",
" [2708],\n",
" [2743],\n",
" [2759],\n",
" [2762],\n",
" [2771],\n",
" [2785],\n",
" [2818],\n",
" [2872],\n",
" [2931],\n",
" [2995],\n",
" [2999],\n",
" [3028],\n",
" [3033],\n",
" [3070, 3071],\n",
" [3213],\n",
" [3290],\n",
" [3296],\n",
" [3336],\n",
" [3356],\n",
" [3472, 3473],\n",
" [3477],\n",
" [3495],\n",
" [3501],\n",
" [3510],\n",
" [3521],\n",
" [3568],\n",
" [3583],\n",
" [3608],\n",
" [3637, 3638],\n",
" [3652],\n",
" [3665],\n",
" [3668],\n",
" [3729],\n",
" [3740],\n",
" [3755],\n",
" [3765],\n",
" [3772],\n",
" [3786],\n",
" [3792],\n",
" [3804],\n",
" [3826],\n",
" [3833],\n",
" [3854],\n",
" [3895],\n",
" [3943],\n",
" [3965],\n",
" [3975],\n",
" [4018],\n",
" [4031],\n",
" [4043],\n",
" [4080],\n",
" [4148],\n",
" [4160],\n",
" [4172, 4173],\n",
" [4182],\n",
" [4331],\n",
" [4333],\n",
" [4389],\n",
" [4418],\n",
" [4468],\n",
" [4483],\n",
" [4496],\n",
" [4672],\n",
" [4733],\n",
" [4741],\n",
" [4775],\n",
" [4782],\n",
" [4832],\n",
" [4852],\n",
" [4875],\n",
" [4928],\n",
" [4973],\n",
" [5062],\n",
" [5064],\n",
" [5082],\n",
" [5086],\n",
" [5135],\n",
" [5262],\n",
" [5265],\n",
" [5280],\n",
" [5320],\n",
" [5349, 5350],\n",
" [5397],\n",
" [5538],\n",
" [5574],\n",
" [5694],\n",
" [5718],\n",
" [5805],\n",
" [5809],\n",
" [5822],\n",
" [5849],\n",
" [5858],\n",
" [5869],\n",
" [5904],\n",
" [5915],\n",
" [5927],\n",
" [5934],\n",
" [5949],\n",
" [5965],\n",
" [6133],\n",
" [6139],\n",
" [6173],\n",
" [6196],\n",
" [6205],\n",
" [6207],\n",
" [6251],\n",
" [6259],\n",
" [6309],\n",
" [6313],\n",
" [6356],\n",
" [6370],\n",
" [6484],\n",
" [6514, 6515, 6516],\n",
" [6547],\n",
" [6595],\n",
" [6606],\n",
" [6608],\n",
" [6620],\n",
" [6676],\n",
" [6688],\n",
" [6692],\n",
" [6700],\n",
" [6770],\n",
" [6880],\n",
" [6924],\n",
" [6926],\n",
" [6935],\n",
" [6946],\n",
" [7052],\n",
" [7208],\n",
" [7263],\n",
" [7276],\n",
" [7283],\n",
" [7294],\n",
" [7315],\n",
" [7326],\n",
" [7336],\n",
" [7351],\n",
" [7367],\n",
" [7375],\n",
" [7406],\n",
" [7415],\n",
" [7417],\n",
" [7429, 7430],\n",
" [7549],\n",
" [7567],\n",
" [7638],\n",
" [7646],\n",
" [7663],\n",
" [7779],\n",
" [7809],\n",
" [7833],\n",
" [7894],\n",
" [7915],\n",
" [8015],\n",
" [8028],\n",
" [8031],\n",
" [8040],\n",
" [8044],\n",
" [8057],\n",
" [8063],\n",
" [8087],\n",
" [8090, 8091, 8092],\n",
" [8147],\n",
" [8150],\n",
" [8177],\n",
" [8185],\n",
" [8191],\n",
" [8199, 8200],\n",
" [8208],\n",
" [8220],\n",
" [8255],\n",
" [8277],\n",
" [8350, 8351],\n",
" [8360],\n",
" [8383],\n",
" [8388],\n",
" [8390],\n",
" [8413],\n",
" [8454],\n",
" [8457],\n",
" [8459],\n",
" [8486],\n",
" [8488],\n",
" [8496],\n",
" [8501],\n",
" [8503],\n",
" [8514],\n",
" [8519],\n",
" [8539],\n",
" [8548],\n",
" [8565],\n",
" [8572],\n",
" [8603],\n",
" [8611],\n",
" [8641],\n",
" [8650],\n",
" [8701],\n",
" [8727],\n",
" [8784],\n",
" [8798],\n",
" [8804, 8805],\n",
" [8807],\n",
" [8826],\n",
" [8882],\n",
" [8923],\n",
" [8974],\n",
" [9002],\n",
" [9081],\n",
" [9114],\n",
" [9127],\n",
" [9149],\n",
" [9153],\n",
" [9155],\n",
" [9171],\n",
" [9193],\n",
" [9201],\n",
" [9230],\n",
" [9302],\n",
" [9308],\n",
" [9312],\n",
" [9348],\n",
" [9374],\n",
" [9398],\n",
" [9404],\n",
" [9415],\n",
" [9442],\n",
" [9461, 9462],\n",
" [9476],\n",
" [9481, 9482]]"
]
},
"metadata": {},
"execution_count": 19
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Xz3aiDZAnBlt",
"outputId": "77eae914-96cf-4b1c-e266-be0311129b4a",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"_group_as_index(_, index=dataset.index, date_format='%d %b %Y', format_date='{} sampai {}')"
],
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-3-23e254b88fe0>:27: DeprecationWarning: _group_as_index is deprecated, use _format_group_indices instead\n",
" warnings.warn(\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['30 Jan 1975',\n",
" '02 Feb 1975 sampai 03 Feb 1975',\n",
" '05 Feb 1975',\n",
" '17 Feb 1975',\n",
" '27 Feb 1975',\n",
" '02 Mar 1975',\n",
" '11 Mar 1975',\n",
" '09 Apr 1975',\n",
" '24 Apr 1975',\n",
" '05 May 1975',\n",
" '16 May 1975',\n",
" '19 May 1975',\n",
" '13 Jun 1975 sampai 14 Jun 1975',\n",
" '19 Jul 1975',\n",
" '16 Aug 1975',\n",
" '04 Oct 1975',\n",
" '07 Nov 1975',\n",
" '03 Dec 1975',\n",
" '05 Dec 1975',\n",
" '16 Dec 1975',\n",
" '27 Dec 1975',\n",
" '23 Jan 1976',\n",
" '03 Mar 1976',\n",
" '12 Mar 1976',\n",
" '10 Apr 1976',\n",
" '12 Apr 1976',\n",
" '24 Apr 1976',\n",
" '06 May 1976',\n",
" '27 May 1976',\n",
" '29 May 1976',\n",
" '01 Jun 1976',\n",
" '06 Jul 1976',\n",
" '26 Aug 1976',\n",
" '23 Nov 1976',\n",
" '01 Dec 1976',\n",
" '03 Dec 1976',\n",
" '14 Jan 1977',\n",
" '24 Jan 1977',\n",
" '26 Jan 1977',\n",
" '30 Jan 1977',\n",
" '04 Feb 1977',\n",
" '18 Feb 1977',\n",
" '10 Mar 1977',\n",
" '08 May 1977',\n",
" '16 Jun 1977',\n",
" '01 Jul 1977',\n",
" '01 Sep 1977',\n",
" '16 Oct 1977',\n",
" '24 Nov 1977',\n",
" '12 Jan 1978 sampai 13 Jan 1978',\n",
" '06 Feb 1978',\n",
" '24 Feb 1978',\n",
" '25 Mar 1978',\n",
" '14 Apr 1978',\n",
" '17 Apr 1978',\n",
" '29 Apr 1978',\n",
" '01 May 1978',\n",
" '12 May 1978',\n",
" '22 May 1978',\n",
" '31 May 1978 sampai 01 Jun 1978',\n",
" '12 Jun 1978',\n",
" '30 Jul 1978',\n",
" '11 Oct 1978',\n",
" '08 Nov 1978',\n",
" '11 Nov 1978',\n",
" '13 Nov 1978',\n",
" '11 Dec 1978',\n",
" '30 Dec 1978',\n",
" '18 Jan 1979',\n",
" '03 Mar 1979',\n",
" '13 Mar 1979',\n",
" '26 Mar 1979',\n",
" '08 May 1979',\n",
" '02 Jun 1979',\n",
" '03 Aug 1979',\n",
" '15 Dec 1979',\n",
" '02 Jan 1980 sampai 03 Jan 1980',\n",
" '05 Jan 1980',\n",
" '07 Jan 1980',\n",
" '09 Jan 1980',\n",
" '28 Jan 1980 sampai 29 Jan 1980',\n",
" '31 Jan 1980',\n",
" '03 Feb 1980',\n",
" '11 Feb 1980',\n",
" '13 Feb 1980',\n",
" '15 Feb 1980',\n",
" '20 Feb 1980',\n",
" '29 Feb 1980',\n",
" '20 Mar 1980 sampai 21 Mar 1980',\n",
" '24 Mar 1980',\n",
" '28 Mar 1980',\n",
" '12 Apr 1980 sampai 13 Apr 1980',\n",
" '20 May 1980',\n",
" '01 Jun 1980',\n",
" '19 Jun 1980',\n",
" '17 Jul 1980',\n",
" '24 Jul 1980',\n",
" '05 Aug 1980',\n",
" '07 Aug 1980',\n",
" '16 Aug 1980',\n",
" '02 Sep 1980',\n",
" '06 Sep 1980',\n",
" '17 Sep 1980 sampai 18 Sep 1980',\n",
" '01 Oct 1980',\n",
" '31 Oct 1980',\n",
" '17 Dec 1980',\n",
" '29 Dec 1980',\n",
" '03 Jan 1981',\n",
" '05 Feb 1981',\n",
" '09 Feb 1981',\n",
" '13 Feb 1981',\n",
" '03 Mar 1981',\n",
" '21 Mar 1981',\n",
" '25 Mar 1981',\n",
" '28 Mar 1981',\n",
" '14 Apr 1981',\n",
" '02 May 1981',\n",
" '11 May 1981 sampai 12 May 1981',\n",
" '26 May 1981',\n",
" '29 May 1981 sampai 30 May 1981',\n",
" '07 Jun 1981',\n",
" '14 Jun 1981',\n",
" '25 Jun 1981',\n",
" '05 Jul 1981',\n",
" '07 Jul 1981',\n",
" '16 Jul 1981',\n",
" '29 Jul 1981',\n",
" '07 Aug 1981',\n",
" '20 Aug 1981',\n",
" '08 Sep 1981 sampai 09 Sep 1981',\n",
" '19 Sep 1981',\n",
" '22 Sep 1981',\n",
" '28 Sep 1981',\n",
" '24 Dec 1981 sampai 25 Dec 1981',\n",
" '22 Jan 1982',\n",
" '26 Jan 1982 sampai 27 Jan 1982',\n",
" '08 Feb 1982',\n",
" '06 May 1982',\n",
" '01 Jun 1982',\n",
" '06 Jul 1982',\n",
" '22 Jul 1982',\n",
" '25 Jul 1982',\n",
" '03 Aug 1982',\n",
" '17 Aug 1982',\n",
" '19 Sep 1982',\n",
" '12 Nov 1982',\n",
" '10 Jan 1983',\n",
" '15 Mar 1983',\n",
" '19 Mar 1983',\n",
" '17 Apr 1983',\n",
" '22 Apr 1983',\n",
" '29 May 1983 sampai 30 May 1983',\n",
" '19 Oct 1983',\n",
" '04 Jan 1984',\n",
" '10 Jan 1984',\n",
" '19 Feb 1984',\n",
" '10 Mar 1984',\n",
" '04 Jul 1984 sampai 05 Jul 1984',\n",
" '09 Jul 1984',\n",
" '27 Jul 1984',\n",
" '02 Aug 1984',\n",
" '11 Aug 1984',\n",
" '22 Aug 1984',\n",
" '08 Oct 1984',\n",
" '23 Oct 1984',\n",
" '17 Nov 1984',\n",
" '16 Dec 1984 sampai 17 Dec 1984',\n",
" '31 Dec 1984',\n",
" '13 Jan 1985',\n",
" '16 Jan 1985',\n",
" '18 Mar 1985',\n",
" '29 Mar 1985',\n",
" '13 Apr 1985',\n",
" '23 Apr 1985',\n",
" '30 Apr 1985',\n",
" '14 May 1985',\n",
" '20 May 1985',\n",
" '01 Jun 1985',\n",
" '23 Jun 1985',\n",
" '30 Jun 1985',\n",
" '21 Jul 1985',\n",
" '31 Aug 1985',\n",
" '18 Oct 1985',\n",
" '09 Nov 1985',\n",
" '19 Nov 1985',\n",
" '01 Jan 1986',\n",
" '14 Jan 1986',\n",
" '26 Jan 1986',\n",
" '04 Mar 1986',\n",
" '11 May 1986',\n",
" '23 May 1986',\n",
" '04 Jun 1986 sampai 05 Jun 1986',\n",
" '14 Jun 1986',\n",
" '10 Nov 1986',\n",
" '12 Nov 1986',\n",
" '07 Jan 1987',\n",
" '05 Feb 1987',\n",
" '27 Mar 1987',\n",
" '11 Apr 1987',\n",
" '24 Apr 1987',\n",
" '17 Oct 1987',\n",
" '17 Dec 1987',\n",
" '25 Dec 1987',\n",
" '28 Jan 1988',\n",
" '04 Feb 1988',\n",
" '25 Mar 1988',\n",
" '14 Apr 1988',\n",
" '07 May 1988',\n",
" '29 Jun 1988',\n",
" '13 Aug 1988',\n",
" '10 Nov 1988',\n",
" '12 Nov 1988',\n",
" '30 Nov 1988',\n",
" '04 Dec 1988',\n",
" '22 Jan 1989',\n",
" '29 May 1989',\n",
" '01 Jun 1989',\n",
" '16 Jun 1989',\n",
" '26 Jul 1989',\n",
" '24 Aug 1989 sampai 25 Aug 1989',\n",
" '11 Oct 1989',\n",
" '01 Mar 1990',\n",
" '06 Apr 1990',\n",
" '04 Aug 1990',\n",
" '28 Aug 1990',\n",
" '23 Nov 1990',\n",
" '27 Nov 1990',\n",
" '10 Dec 1990',\n",
" '06 Jan 1991',\n",
" '15 Jan 1991',\n",
" '26 Jan 1991',\n",
" '02 Mar 1991',\n",
" '13 Mar 1991',\n",
" '25 Mar 1991',\n",
" '01 Apr 1991',\n",
" '16 Apr 1991',\n",
" '02 May 1991',\n",
" '17 Oct 1991',\n",
" '23 Oct 1991',\n",
" '26 Nov 1991',\n",
" '19 Dec 1991',\n",
" '28 Dec 1991',\n",
" '30 Dec 1991',\n",
" '12 Feb 1992',\n",
" '20 Feb 1992',\n",
" '10 Apr 1992',\n",
" '14 Apr 1992',\n",
" '27 May 1992',\n",
" '10 Jun 1992',\n",
" '02 Oct 1992',\n",
" '01 Nov 1992 sampai 03 Nov 1992',\n",
" '04 Dec 1992',\n",
" '21 Jan 1993',\n",
" '01 Feb 1993',\n",
" '03 Feb 1993',\n",
" '15 Feb 1993',\n",
" '12 Apr 1993',\n",
" '24 Apr 1993',\n",
" '28 Apr 1993',\n",
" '06 May 1993',\n",
" '15 Jul 1993',\n",
" '02 Nov 1993',\n",
" '16 Dec 1993',\n",
" '18 Dec 1993',\n",
" '27 Dec 1993',\n",
" '07 Jan 1994',\n",
" '23 Apr 1994',\n",
" '26 Sep 1994',\n",
" '20 Nov 1994',\n",
" '03 Dec 1994',\n",
" '10 Dec 1994',\n",
" '21 Dec 1994',\n",
" '11 Jan 1995',\n",
" '22 Jan 1995',\n",
" '01 Feb 1995',\n",
" '16 Feb 1995',\n",
" '04 Mar 1995',\n",
" '12 Mar 1995',\n",
" '12 Apr 1995',\n",
" '21 Apr 1995',\n",
" '23 Apr 1995',\n",
" '05 May 1995 sampai 06 May 1995',\n",
" '02 Sep 1995',\n",
" '20 Sep 1995',\n",
" '30 Nov 1995',\n",
" '08 Dec 1995',\n",
" '25 Dec 1995',\n",
" '19 Apr 1996',\n",
" '19 May 1996',\n",
" '12 Jun 1996',\n",
" '12 Aug 1996',\n",
" '02 Sep 1996',\n",
" '11 Dec 1996',\n",
" '24 Dec 1996',\n",
" '27 Dec 1996',\n",
" '05 Jan 1997',\n",
" '09 Jan 1997',\n",
" '22 Jan 1997',\n",
" '28 Jan 1997',\n",
" '21 Feb 1997',\n",
" '24 Feb 1997 sampai 26 Feb 1997',\n",
" '22 Apr 1997',\n",
" '25 Apr 1997',\n",
" '22 May 1997',\n",
" '30 May 1997',\n",
" '05 Jun 1997',\n",
" '13 Jun 1997 sampai 14 Jun 1997',\n",
" '22 Jun 1997',\n",
" '04 Jul 1997',\n",
" '08 Aug 1997',\n",
" '30 Aug 1997',\n",
" '11 Nov 1997 sampai 12 Nov 1997',\n",
" '21 Nov 1997',\n",
" '14 Dec 1997',\n",
" '19 Dec 1997',\n",
" '21 Dec 1997',\n",
" '13 Jan 1998',\n",
" '23 Feb 1998',\n",
" '26 Feb 1998',\n",
" '28 Feb 1998',\n",
" '27 Mar 1998',\n",
" '29 Mar 1998',\n",
" '06 Apr 1998',\n",
" '11 Apr 1998',\n",
" '13 Apr 1998',\n",
" '24 Apr 1998',\n",
" '29 Apr 1998',\n",
" '19 May 1998',\n",
" '28 May 1998',\n",
" '14 Jun 1998',\n",
" '21 Jun 1998',\n",
" '22 Jul 1998',\n",
" '30 Jul 1998',\n",
" '29 Aug 1998',\n",
" '07 Sep 1998',\n",
" '28 Oct 1998',\n",
" '23 Nov 1998',\n",
" '19 Jan 1999',\n",
" '02 Feb 1999',\n",
" '08 Feb 1999 sampai 09 Feb 1999',\n",
" '11 Feb 1999',\n",
" '02 Mar 1999',\n",
" '27 Apr 1999',\n",
" '07 Jun 1999',\n",
" '28 Jul 1999',\n",
" '25 Aug 1999',\n",
" '12 Nov 1999',\n",
" '15 Dec 1999',\n",
" '28 Dec 1999',\n",
" '19 Jan 2000',\n",
" '23 Jan 2000',\n",
" '25 Jan 2000',\n",
" '10 Feb 2000',\n",
" '03 Mar 2000',\n",
" '11 Mar 2000',\n",
" '09 Apr 2000',\n",
" '20 Jun 2000',\n",
" '26 Jun 2000',\n",
" '30 Jun 2000',\n",
" '05 Aug 2000',\n",
" '31 Aug 2000',\n",
" '24 Sep 2000',\n",
" '30 Sep 2000',\n",
" '11 Oct 2000',\n",
" '07 Nov 2000',\n",
" '26 Nov 2000 sampai 27 Nov 2000',\n",
" '11 Dec 2000',\n",
" '16 Dec 2000 sampai 17 Dec 2000']"
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qbv_bFl5nVsx"
},
"source": [
"# Changelog\n",
"\n",
"```\n",
"- 20240413 - 2.0.0 / v0.5.0 - Refactor function names and update deprecated functions\n",
"- 20190928 - 1.0.0 - Initial\n",
"```\n",
"\n",
"#### Copyright &copy; 2019-2024 [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/)."
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment