{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Pandas"
      ],
      "metadata": {
        "id": "RoJrXUFN7OSO"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import pandas as pd"
      ],
      "metadata": {
        "id": "SKWEXyXY7RgW"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Series"
      ],
      "metadata": {
        "id": "SkZaimpd7ZlQ"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Series from ndarray"
      ],
      "metadata": {
        "id": "_F4vzYp27tLv"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "array_data = np.array([1, 2, 3, 4, 5])\n",
        "series_from_array = pd.Series(data=array_data, index=[\"a\", \"b\", \"c\", \"d\", \"e\"])\n",
        "series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qF3N7B587bBm",
        "outputId": "5939eb13-3810-413d-8bc9-dd0c5ec45d23"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a    1\n",
              "b    2\n",
              "c    3\n",
              "d    4\n",
              "e    5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 29
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pd.Series(data=array_data)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "edXpPKwBPyJf",
        "outputId": "2e94b7b6-1b6c-49c7-ef62-f5845355d185"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0    1\n",
              "1    2\n",
              "2    3\n",
              "3    4\n",
              "4    5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 30
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Series from dict"
      ],
      "metadata": {
        "id": "z6pY5PSs9j_f"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dict_data = {\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5}\n",
        "series_from_dict = pd.Series(dict_data)\n",
        "series_from_dict"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3CmA0bLB9r3G",
        "outputId": "b6831a46-3c01-4b0c-a8db-41bddfce7d59"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a    1\n",
              "b    2\n",
              "c    3\n",
              "d    4\n",
              "e    5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#### Series is ndarray-like:"
      ],
      "metadata": {
        "id": "Qy0iinTo-hjz"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array.values"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-YeKDF8Z-mNc",
        "outputId": "9de42a37-d08c-48c4-9645-b533f08861bc"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([1, 2, 3, 4, 5])"
            ]
          },
          "metadata": {},
          "execution_count": 32
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict.values"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cE6jbWr9-q-6",
        "outputId": "5d6bfbc8-1f0a-4b33-b42b-260dbea60805"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([1, 2, 3, 4, 5])"
            ]
          },
          "metadata": {},
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "So, you can use most of the Numpy functions with Series object!"
      ],
      "metadata": {
        "id": "GbqQz9_e--rJ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "np.mean(series_from_array), np.max(series_from_array)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PtxyBlc0_Efo",
        "outputId": "de4f668f-8e08-457f-ed7d-d8cee976275d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(3.0, 5)"
            ]
          },
          "metadata": {},
          "execution_count": 34
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array * 2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "se5VY12VAc7R",
        "outputId": "851abe64-b3c8-4a50-eb64-d88ed0ce7676"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a     2\n",
              "b     4\n",
              "c     6\n",
              "d     8\n",
              "e    10\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 35
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[0], series_from_array.iloc[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cHSYL4zN_fyL",
        "outputId": "1048d2b7-4908-411c-8a3f-175c43894aa0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1, 1)"
            ]
          },
          "metadata": {},
          "execution_count": 36
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array = pd.Series(data=array_data, index=[1, 2, 3, 4, 5])"
      ],
      "metadata": {
        "id": "iI08BwpbOFlm"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 478
        },
        "id": "1X9SC1-lOO1Y",
        "outputId": "2526f8c8-dff5-4b07-e6ab-2709eff6467d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "error",
          "ename": "KeyError",
          "evalue": "0",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3652\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3653\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 0",
            "\nThe above exception was the direct cause of the following exception:\n",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-46-5ce8a6d92f96>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mseries_from_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   1005\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1006\u001b[0m         \u001b[0;32melif\u001b[0m \u001b[0mkey_is_scalar\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1007\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1008\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1009\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mis_hashable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m_get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m   1114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1115\u001b[0m         \u001b[0;31m# Similar to Index.get_value, but we do not fall back to positional\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1116\u001b[0;31m         \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1117\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1118\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3653\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3655\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3656\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3657\u001b[0m             \u001b[0;31m# If we have a listlike key, _check_indexing_error will raise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 0"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[:3], series_from_array.iloc[:3]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "c2_X6PVR_lhm",
        "outputId": "fa0f695a-4cfb-4546-dc1e-5f204d4f7b9a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(a    1\n",
              " b    2\n",
              " c    3\n",
              " dtype: int64,\n",
              " a    1\n",
              " b    2\n",
              " c    3\n",
              " dtype: int64)"
            ]
          },
          "metadata": {},
          "execution_count": 37
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# to actual array\n",
        "series_from_array.to_numpy()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "dKK1o6epACUC",
        "outputId": "0d55a328-2bf0-466c-caf1-30a74a05b4d7"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([1, 2, 3, 4, 5])"
            ]
          },
          "metadata": {},
          "execution_count": 38
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#### Series is dict-like"
      ],
      "metadata": {
        "id": "_DY8JsXqAjtg"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[\"a\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iIlMvIIAAIVi",
        "outputId": "e4ac9749-4837-48cc-8706-d61792e654f1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1"
            ]
          },
          "metadata": {},
          "execution_count": 39
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[\"a\"] = 11\n",
        "series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "o_2mm2FeA4vX",
        "outputId": "241b9a60-db1c-44d7-af48-4628a866bbc3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a    11\n",
              "b     2\n",
              "c     3\n",
              "d     4\n",
              "e     5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 40
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"a\" in series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "MHaBJFvEA_nr",
        "outputId": "0cb75a18-b547-4a49-a471-5228de673722"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "True"
            ]
          },
          "metadata": {},
          "execution_count": 41
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"aa\" in series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5Pqqzmv5BDEA",
        "outputId": "9fe10bcb-c9c4-43f4-b2aa-cad1cbbe4753"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "False"
            ]
          },
          "metadata": {},
          "execution_count": 42
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array[\"aa\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 478
        },
        "id": "WWlGmEAzBL1d",
        "outputId": "2f49ddc2-593a-4c95-bdb7-f3ebb38fd122"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "error",
          "ename": "KeyError",
          "evalue": "'aa'",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3652\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3653\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 'aa'",
            "\nThe above exception was the direct cause of the following exception:\n",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-43-0f32dbee3797>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mseries_from_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"aa\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   1005\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1006\u001b[0m         \u001b[0;32melif\u001b[0m \u001b[0mkey_is_scalar\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1007\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1008\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1009\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mis_hashable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m_get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m   1114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1115\u001b[0m         \u001b[0;31m# Similar to Index.get_value, but we do not fall back to positional\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1116\u001b[0;31m         \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1117\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1118\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3653\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3655\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3656\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3657\u001b[0m             \u001b[0;31m# If we have a listlike key, _check_indexing_error will raise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 'aa'"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array.to_dict()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LJR-moU_CF2o",
        "outputId": "3d712333-6b0b-45ac-cc93-f612b1bf65c8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'a': 11, 'b': 2, 'c': 3, 'd': 4, 'e': 5}"
            ]
          },
          "metadata": {},
          "execution_count": 44
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#### Play more with series"
      ],
      "metadata": {
        "id": "srZdGIFrBb3d"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wboOYzwCQw2q",
        "outputId": "2d83a1d9-593a-4e15-8191-89c1cdd0b872"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a    1\n",
              "b    2\n",
              "c    3\n",
              "d    4\n",
              "e    5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 47
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict > 3"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "dh3TSKIjBfzK",
        "outputId": "d37aeb24-82ec-445a-ded5-24b7a681ca78"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a    False\n",
              "b    False\n",
              "c    False\n",
              "d     True\n",
              "e     True\n",
              "dtype: bool"
            ]
          },
          "metadata": {},
          "execution_count": 48
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict[series_from_dict > 3]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0WDm5wydBmGB",
        "outputId": "727d444d-653d-4f0c-904c-69861494cb39"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "d    4\n",
              "e    5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 49
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict.describe()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f54IV5zQBq2V",
        "outputId": "f9399d8b-5ebb-4269-d185-c974e0f87b47"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "count    5.000000\n",
              "mean     3.000000\n",
              "std      1.581139\n",
              "min      1.000000\n",
              "25%      2.000000\n",
              "50%      3.000000\n",
              "75%      4.000000\n",
              "max      5.000000\n",
              "dtype: float64"
            ]
          },
          "metadata": {},
          "execution_count": 50
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict[\"aa\"] = np.nan\n",
        "series_from_dict"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Q0C-dBmBCRJA",
        "outputId": "120e2970-2e5d-4ada-e37e-63aceff05061"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a     1.0\n",
              "b     2.0\n",
              "c     3.0\n",
              "d     4.0\n",
              "e     5.0\n",
              "aa    NaN\n",
              "dtype: float64"
            ]
          },
          "metadata": {},
          "execution_count": 51
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict.describe()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0PT0OifZSZKL",
        "outputId": "0c89b42a-919e-4659-f686-2b522ba54a36"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "count    5.000000\n",
              "mean     3.000000\n",
              "std      1.581139\n",
              "min      1.000000\n",
              "25%      2.000000\n",
              "50%      3.000000\n",
              "75%      4.000000\n",
              "max      5.000000\n",
              "dtype: float64"
            ]
          },
          "metadata": {},
          "execution_count": 52
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict.isna()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Fy4Us_KBCdrM",
        "outputId": "69b7bb08-fa12-4d0d-8303-fba1e2ac6eca"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a     False\n",
              "b     False\n",
              "c     False\n",
              "d     False\n",
              "e     False\n",
              "aa     True\n",
              "dtype: bool"
            ]
          },
          "metadata": {},
          "execution_count": 53
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_dict.fillna(series_from_dict.median())"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "taFVA1w7Cphq",
        "outputId": "f308f079-2881-438c-dfe9-16cb07aac5ed"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "a     1.0\n",
              "b     2.0\n",
              "c     3.0\n",
              "d     4.0\n",
              "e     5.0\n",
              "aa    3.0\n",
              "dtype: float64"
            ]
          },
          "metadata": {},
          "execution_count": 54
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "for el in series_from_dict:\n",
        "  print(el)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "X4vX2_Gq6YBF",
        "outputId": "3f727990-9eb6-4c0f-90c4-5ee6bf43508c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "1.0\n",
            "2.0\n",
            "3.0\n",
            "4.0\n",
            "5.0\n",
            "nan\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## DataFrame"
      ],
      "metadata": {
        "id": "CsmOe5tiD13s"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Create DataFrane"
      ],
      "metadata": {
        "id": "7a-dBaKIQzU7"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#from dict of ndarrays or lists\n",
        "d = {\"one\": [1.0, 2.0, 3.0, 4.0], \"two\": [4.0, 3.0, 2.0, 1.0]}\n",
        "pd.DataFrame(d, index=[\"a\", \"b\", \"c\", \"d\"])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "KNIJISNFH4mN",
        "outputId": "db372c52-a95c-4342-ad12-bd7601c39959"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   one  two\n",
              "a  1.0  4.0\n",
              "b  2.0  3.0\n",
              "c  3.0  2.0\n",
              "d  4.0  1.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3675155a-41c3-4c26-a422-63e7ef33669f\" 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>one</th>\n",
              "      <th>two</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>a</th>\n",
              "      <td>1.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>b</th>\n",
              "      <td>2.0</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>c</th>\n",
              "      <td>3.0</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>d</th>\n",
              "      <td>4.0</td>\n",
              "      <td>1.0</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-3675155a-41c3-4c26-a422-63e7ef33669f')\"\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-3675155a-41c3-4c26-a422-63e7ef33669f 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-3675155a-41c3-4c26-a422-63e7ef33669f');\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-93d2c755-bcaa-467c-b208-c3c3681fb96f\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-93d2c755-bcaa-467c-b208-c3c3681fb96f')\"\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-93d2c755-bcaa-467c-b208-c3c3681fb96f 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\": \"pd\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"one\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2.0,\n          4.0,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"two\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          3.0,\n          1.0,\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 56
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#from list of dict\n",
        "d2 = [{\"a\": 1, \"b\": 2}, {\"a\": 5, \"b\": 10, \"c\": 20}]\n",
        "pd.DataFrame(d2)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 112
        },
        "id": "4QP5_ZN5IQ_b",
        "outputId": "869e3b4a-bebe-417d-f0b4-c4dc72d032cf"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   a   b     c\n",
              "0  1   2   NaN\n",
              "1  5  10  20.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c6f07efa-17cd-42d3-8917-2bdbcbd53f32\" 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>a</th>\n",
              "      <th>b</th>\n",
              "      <th>c</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>5</td>\n",
              "      <td>10</td>\n",
              "      <td>20.0</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-c6f07efa-17cd-42d3-8917-2bdbcbd53f32')\"\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-c6f07efa-17cd-42d3-8917-2bdbcbd53f32 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-c6f07efa-17cd-42d3-8917-2bdbcbd53f32');\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-0f2a54e5-8162-43cd-b5af-2d580ee5dd7c\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0f2a54e5-8162-43cd-b5af-2d580ee5dd7c')\"\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-0f2a54e5-8162-43cd-b5af-2d580ee5dd7c 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\": \"pd\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"a\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5,\n          1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"b\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5,\n        \"min\": 2,\n        \"max\": 10,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          10,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"c\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 20.0,\n        \"max\": 20.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          20.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 57
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df = pd.DataFrame(\n",
        "    {\n",
        "        \"A\": 1.0,\n",
        "        \"B\": pd.Timestamp(\"20210102\"),\n",
        "        \"C\": pd.Series(1, index=list(range(4,8)), dtype=\"float32\"),\n",
        "        \"D\": np.array([3] * 4, dtype=\"int32\", ),\n",
        "        \"E\": pd.Categorical([\"test\", \"train\", \"test\", \"train\"]),\n",
        "        \"F\": \"foo\",\n",
        "        \"G\": [[3,4]]*4\n",
        "    }\n",
        ")\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "H6zkRv2NFjH_",
        "outputId": "09a7c077-ed91-4633-ada4-db569bb92739"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D      E    F       G\n",
              "4  1.0 2021-01-02  1.0  3   test  foo  [3, 4]\n",
              "5  1.0 2021-01-02  1.0  3  train  foo  [3, 4]\n",
              "6  1.0 2021-01-02  1.0  3   test  foo  [3, 4]\n",
              "7  1.0 2021-01-02  1.0  3  train  foo  [3, 4]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-cc24d3a5-c501-485a-ad90-d78c8349d0b5\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</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-cc24d3a5-c501-485a-ad90-d78c8349d0b5')\"\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-cc24d3a5-c501-485a-ad90-d78c8349d0b5 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-cc24d3a5-c501-485a-ad90-d78c8349d0b5');\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-69d1f620-6603-468b-b9ab-9c04d09af667\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-69d1f620-6603-468b-b9ab-9c04d09af667')\"\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-69d1f620-6603-468b-b9ab-9c04d09af667 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"foo\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 58
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df = pd.DataFrame(\n",
        "    {\n",
        "        \"A\": 1.0,\n",
        "        \"B\": pd.Timestamp(\"20210102\"),\n",
        "        \"C\": pd.Series(1, index=list(range(4,8)), dtype=\"float32\"),\n",
        "        \"D\": np.array([3] * 4, dtype=\"int32\", ),\n",
        "        \"E\": pd.Categorical([\"test\", \"train\", \"test\", \"train\"]),\n",
        "        \"F\": \"foo\",\n",
        "        \"G\": [[3,4]]*4\n",
        "    }, index=[0,1,2,3]\n",
        ")\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "jP2FWtdwIVOj",
        "outputId": "34b858d5-238a-4bbf-97d4-02e645834e98"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G\n",
              "0  1.0 2021-01-02 NaN  3   test  foo  [3, 4]\n",
              "1  1.0 2021-01-02 NaN  3  train  foo  [3, 4]\n",
              "2  1.0 2021-01-02 NaN  3   test  foo  [3, 4]\n",
              "3  1.0 2021-01-02 NaN  3  train  foo  [3, 4]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-63a49384-aa53-4770-b404-7c7de11ac839\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</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-63a49384-aa53-4770-b404-7c7de11ac839')\"\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-63a49384-aa53-4770-b404-7c7de11ac839 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-63a49384-aa53-4770-b404-7c7de11ac839');\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-8c8f10fd-04f6-432c-93cc-ca54af8607b0\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-8c8f10fd-04f6-432c-93cc-ca54af8607b0')\"\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-8c8f10fd-04f6-432c-93cc-ca54af8607b0 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 59
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### DataFrame characteristics"
      ],
      "metadata": {
        "id": "acJKwlu8Q9sn"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.index"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4nji4YU3GEkm",
        "outputId": "a204ba6e-6b8b-4d59-94c3-bb15c54f4b74"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index([0, 1, 2, 3], dtype='int64')"
            ]
          },
          "metadata": {},
          "execution_count": 60
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.index = [1, 2, 3, 4]"
      ],
      "metadata": {
        "id": "BXAqhYBzGHo1"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df.index"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FOMrCurXGLmn",
        "outputId": "d937844e-85f7-4441-d72a-d361030efe74"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index([1, 2, 3, 4], dtype='int64')"
            ]
          },
          "metadata": {},
          "execution_count": 62
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.columns"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Zx1ijwvzGTOG",
        "outputId": "aa0417c0-60c8-453f-da9e-d753c4b4cfa0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')"
            ]
          },
          "metadata": {},
          "execution_count": 63
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.size"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-gD0aLKeGOFW",
        "outputId": "9b122b68-6e05-452a-c14b-5f0c1e57836b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "28"
            ]
          },
          "metadata": {},
          "execution_count": 64
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.shape"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hidWh9DcGQ5a",
        "outputId": "8dfabde6-cac0-4953-d051-9d3faebc9f7b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(4, 7)"
            ]
          },
          "metadata": {},
          "execution_count": 65
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.dtypes"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2xpSEm1wGZat",
        "outputId": "11100a1e-ad43-42c9-f104-4e986ed65d35"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "A           float64\n",
              "B    datetime64[ns]\n",
              "C           float32\n",
              "D             int32\n",
              "E          category\n",
              "F            object\n",
              "G            object\n",
              "dtype: object"
            ]
          },
          "metadata": {},
          "execution_count": 66
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.describe()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 300
        },
        "id": "Zt6MaYmvGiCh",
        "outputId": "3500f235-aea3-45d8-dd6b-0a05290f4443"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "         A                    B    C    D\n",
              "count  4.0                    4  0.0  4.0\n",
              "mean   1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "min    1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "25%    1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "50%    1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "75%    1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "max    1.0  2021-01-02 00:00:00  NaN  3.0\n",
              "std    0.0                  NaN  NaN  0.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-61417f82-4953-4443-9f5a-d77c449a13f4\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>4.0</td>\n",
              "      <td>4</td>\n",
              "      <td>0.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02 00:00:00</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>0.0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0.0</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-61417f82-4953-4443-9f5a-d77c449a13f4')\"\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-61417f82-4953-4443-9f5a-d77c449a13f4 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-61417f82-4953-4443-9f5a-d77c449a13f4');\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-04cd04d2-3ab4-4f76-b790-ac869dd78cf1\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-04cd04d2-3ab4-4f76-b790-ac869dd78cf1')\"\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-04cd04d2-3ab4-4f76-b790-ac869dd78cf1 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\": \"df\",\n  \"rows\": 8,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.164964745021435,\n        \"min\": 0.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          4.0,\n          1.0,\n          0.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"1970-01-01 00:00:00.000000004\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2021-01-02 00:00:00\",\n          \"4\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.164964745021435,\n        \"min\": 0.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 67
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"E\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "rpSluLdwG-OC",
        "outputId": "8ef73e33-5e47-4e52-dce4-db24d4b554a6"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1     test\n",
              "2    train\n",
              "3     test\n",
              "4    train\n",
              "Name: E, dtype: category\n",
              "Categories (2, object): ['test', 'train']"
            ]
          },
          "metadata": {},
          "execution_count": 68
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.E"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qFIMo0FWHGCn",
        "outputId": "695ca1bc-fe27-46ef-cc24-6cd4cfc8a5c5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1     test\n",
              "2    train\n",
              "3     test\n",
              "4    train\n",
              "Name: E, dtype: category\n",
              "Categories (2, object): ['test', 'train']"
            ]
          },
          "metadata": {},
          "execution_count": 69
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[[\"E\"]]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "9zozoepvVkun",
        "outputId": "aa85229f-47ac-455d-dfe7-282797eeb4ba"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "       E\n",
              "1   test\n",
              "2  train\n",
              "3   test\n",
              "4  train"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-fb5a1061-3678-4ba7-b7be-ad599626805e\" 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>E</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>test</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>train</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>test</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>train</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-fb5a1061-3678-4ba7-b7be-ad599626805e')\"\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-fb5a1061-3678-4ba7-b7be-ad599626805e 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-fb5a1061-3678-4ba7-b7be-ad599626805e');\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-1995d559-0c47-4ffd-9e6a-c30853be44fa\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1995d559-0c47-4ffd-9e6a-c30853be44fa')\"\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-1995d559-0c47-4ffd-9e6a-c30853be44fa 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\": \"df[[\\\"E\\\"]]\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\",\n          \"test\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 70
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[[\"A\", \"E\"]]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "xWwttmntHH6d",
        "outputId": "d5cdcea5-20fa-4e17-c21d-afbd95de864c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A      E\n",
              "1  1.0   test\n",
              "2  1.0  train\n",
              "3  1.0   test\n",
              "4  1.0  train"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-d860c739-2f22-41bb-b16d-4152fc3b5e2c\" 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>A</th>\n",
              "      <th>E</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>test</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>train</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>test</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>train</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-d860c739-2f22-41bb-b16d-4152fc3b5e2c')\"\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-d860c739-2f22-41bb-b16d-4152fc3b5e2c 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-d860c739-2f22-41bb-b16d-4152fc3b5e2c');\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-e0feb02e-6c25-4a93-b73f-12eb03fc4004\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e0feb02e-6c25-4a93-b73f-12eb03fc4004')\"\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-e0feb02e-6c25-4a93-b73f-12eb03fc4004 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\": \"df[[\\\"A\\\", \\\"E\\\"]]\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 71
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.to_numpy()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ExTAxznmHM5m",
        "outputId": "6c571f59-e204-432e-f7f8-4123051ae7d2"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[1.0, Timestamp('2021-01-02 00:00:00'), nan, 3, 'test', 'foo',\n",
              "        list([3, 4])],\n",
              "       [1.0, Timestamp('2021-01-02 00:00:00'), nan, 3, 'train', 'foo',\n",
              "        list([3, 4])],\n",
              "       [1.0, Timestamp('2021-01-02 00:00:00'), nan, 3, 'test', 'foo',\n",
              "        list([3, 4])],\n",
              "       [1.0, Timestamp('2021-01-02 00:00:00'), nan, 3, 'train', 'foo',\n",
              "        list([3, 4])]], dtype=object)"
            ]
          },
          "metadata": {},
          "execution_count": 72
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Operations on columns"
      ],
      "metadata": {
        "id": "j_d4i9v1JR8T"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"A\"] + df[\"C\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Nm3K9qrpHn8U",
        "outputId": "ef9541f9-0151-4c08-b8ee-7293c2775479"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1   NaN\n",
              "2   NaN\n",
              "3   NaN\n",
              "4   NaN\n",
              "dtype: float64"
            ]
          },
          "metadata": {},
          "execution_count": 73
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"D\"] ** 2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "UDep80CoI5q9",
        "outputId": "6aa81707-f277-4863-a7a4-d1b85b2abc96"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1    9\n",
              "2    9\n",
              "3    9\n",
              "4    9\n",
              "Name: D, dtype: int32"
            ]
          },
          "metadata": {},
          "execution_count": 74
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"New_col\"] = 1\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "2VGNJ9-tJXQM",
        "outputId": "6176a7ed-ddc2-40d6-eb12-9bd7265feef3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G  New_col\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]        1\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        1\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]        1\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        1"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3d929b82-95e2-4646-b53a-302ac0ee7090\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>New_col</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1</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-3d929b82-95e2-4646-b53a-302ac0ee7090')\"\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-3d929b82-95e2-4646-b53a-302ac0ee7090 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-3d929b82-95e2-4646-b53a-302ac0ee7090');\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-3ea4dc54-f290-4e8e-aeed-7ae2cdef056c\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3ea4dc54-f290-4e8e-aeed-7ae2cdef056c')\"\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-3ea4dc54-f290-4e8e-aeed-7ae2cdef056c 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"New_col\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 75
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"New_col\"] = [1, 3]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 287
        },
        "id": "GgqTMrfNJdhE",
        "outputId": "d75df893-2299-4bb9-e7c8-adcb19caf6b0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "error",
          "ename": "ValueError",
          "evalue": "Length of values (2) does not match length of index (4)",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-76-22e60ba76bc9>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"New_col\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__setitem__\u001b[0;34m(self, key, value)\u001b[0m\n\u001b[1;32m   3948\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3949\u001b[0m             \u001b[0;31m# set column\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3950\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_item\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3951\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3952\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_setitem_slice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_set_item\u001b[0;34m(self, key, value)\u001b[0m\n\u001b[1;32m   4141\u001b[0m         \u001b[0mensure\u001b[0m \u001b[0mhomogeneity\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4142\u001b[0m         \"\"\"\n\u001b[0;32m-> 4143\u001b[0;31m         \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sanitize_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   4144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4145\u001b[0m         if (\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_sanitize_column\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m   4868\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4869\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mis_list_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4870\u001b[0;31m             \u001b[0mcom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequire_length_match\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   4871\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0msanitize_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mallow_2d\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4872\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/common.py\u001b[0m in \u001b[0;36mrequire_length_match\u001b[0;34m(data, index)\u001b[0m\n\u001b[1;32m    574\u001b[0m     \"\"\"\n\u001b[1;32m    575\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 576\u001b[0;31m         raise ValueError(\n\u001b[0m\u001b[1;32m    577\u001b[0m             \u001b[0;34m\"Length of values \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    578\u001b[0m             \u001b[0;34mf\"({len(data)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mValueError\u001b[0m: Length of values (2) does not match length of index (4)"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"New_col\"] = [1, 2, 3, 4]\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "aIk_6_ncJhP5",
        "outputId": "c3826f4e-8a88-4d0a-92e7-726892d0afd3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G  New_col\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]        1\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        2\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]        3\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        4"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-01ec9762-bcb0-48ff-bccb-ff7a7676afea\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>New_col</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4</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-01ec9762-bcb0-48ff-bccb-ff7a7676afea')\"\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-01ec9762-bcb0-48ff-bccb-ff7a7676afea 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-01ec9762-bcb0-48ff-bccb-ff7a7676afea');\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-1f75b161-533c-4cde-b67a-dbe818827309\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1f75b161-533c-4cde-b67a-dbe818827309')\"\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-1f75b161-533c-4cde-b67a-dbe818827309 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"New_col\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 1,\n        \"max\": 4,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 77
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "####Do you remember abount index?"
      ],
      "metadata": {
        "id": "dVslWgLN2xCd"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PiZ_vkGLJrgY",
        "outputId": "a07baeae-b8e4-434f-a6da-beb94f0bb3b9"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1    11\n",
              "2     2\n",
              "3     3\n",
              "4     4\n",
              "5     5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 78
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"New_col\"] = series_from_array\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "vJcwXUnkJw17",
        "outputId": "45cb4094-d8ab-4533-b0aa-ec61b1f5d067"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G  New_col\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]       11\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        2\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]        3\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]        4"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-39e8484a-b0aa-4451-94c8-94a95ecb2ec7\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>New_col</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>11</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4</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-39e8484a-b0aa-4451-94c8-94a95ecb2ec7')\"\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-39e8484a-b0aa-4451-94c8-94a95ecb2ec7 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-39e8484a-b0aa-4451-94c8-94a95ecb2ec7');\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-485df3a0-132e-4a66-a04d-b209f51a07c4\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-485df3a0-132e-4a66-a04d-b209f51a07c4')\"\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-485df3a0-132e-4a66-a04d-b209f51a07c4 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"New_col\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 4,\n        \"min\": 2,\n        \"max\": 11,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 79
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "series_from_array.index = [8, 2, 3, 4, 5]\n",
        "series_from_array"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "OIN9ONjFJ5fd",
        "outputId": "b8a173e8-6791-4218-de19-97c1abb4c63a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "8    11\n",
              "2     2\n",
              "3     3\n",
              "4     4\n",
              "5     5\n",
              "dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 82
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"New_col\"] = series_from_array\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "om0VzOXyKCFD",
        "outputId": "13287d2c-0f02-4ca8-861d-b520a190fdfb"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G  New_col\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]      NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]      2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]      3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]      4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e37ad802-9c78-4baa-a7a5-972097689101\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>New_col</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-e37ad802-9c78-4baa-a7a5-972097689101')\"\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-e37ad802-9c78-4baa-a7a5-972097689101 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-e37ad802-9c78-4baa-a7a5-972097689101');\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-a5485bec-2ad8-4d6b-97ab-9bd2dde0e095\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a5485bec-2ad8-4d6b-97ab-9bd2dde0e095')\"\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-a5485bec-2ad8-4d6b-97ab-9bd2dde0e095 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"New_col\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 83
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.rename(columns={\"New_col\": \"X\"})"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "ZrRn0KJIK-ur",
        "outputId": "b168f291-449b-4813-b2cc-10a5169d58f4"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3a0b5ecd-cdad-4a81-8fc3-d348f695edec\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-3a0b5ecd-cdad-4a81-8fc3-d348f695edec')\"\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-3a0b5ecd-cdad-4a81-8fc3-d348f695edec 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-3a0b5ecd-cdad-4a81-8fc3-d348f695edec');\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-6178bc32-94b6-4ea9-9496-32cca0b6f755\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6178bc32-94b6-4ea9-9496-32cca0b6f755')\"\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-6178bc32-94b6-4ea9-9496-32cca0b6f755 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\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 84
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "sasELXPVLSX_",
        "outputId": "956e647c-9e05-44bd-957f-d9791b07813e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G  New_col\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]      NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]      2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]      3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]      4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-fe47cec9-a7cd-436b-b0c4-87e25aed1ae4\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>New_col</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-fe47cec9-a7cd-436b-b0c4-87e25aed1ae4')\"\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-fe47cec9-a7cd-436b-b0c4-87e25aed1ae4 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-fe47cec9-a7cd-436b-b0c4-87e25aed1ae4');\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-307458a8-fd8d-4092-8a83-c9d22a68f5d4\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-307458a8-fd8d-4092-8a83-c9d22a68f5d4')\"\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-307458a8-fd8d-4092-8a83-c9d22a68f5d4 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"New_col\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 85
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#not recommended\n",
        "df.rename(columns={\"New_col\": \"X\"}, inplace=True)\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "XW6njOWT3OEQ",
        "outputId": "b159f06b-b61a-4b21-f879-c2d700bd818a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-afaba93c-76d5-43b9-9aab-1f76c83aec27\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-afaba93c-76d5-43b9-9aab-1f76c83aec27')\"\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-afaba93c-76d5-43b9-9aab-1f76c83aec27 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-afaba93c-76d5-43b9-9aab-1f76c83aec27');\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-10dde4d5-43ee-467d-ae07-edd4dfc21993\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-10dde4d5-43ee-467d-ae07-edd4dfc21993')\"\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-10dde4d5-43ee-467d-ae07-edd4dfc21993 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 86
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Good article is [here](https://towardsdatascience.com/why-you-should-probably-never-use-pandas-inplace-true-9f9f211849e4)"
      ],
      "metadata": {
        "id": "AcvToGkt3-9_"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df = df.rename(columns={\"New_col\": \"X\"})\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "j2tPsDrLLT5I",
        "outputId": "1fb365a4-f1dd-4847-f953-8ca2f052129d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-77d255d6-8350-423f-9740-c980544d2099\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-77d255d6-8350-423f-9740-c980544d2099')\"\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-77d255d6-8350-423f-9740-c980544d2099 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-77d255d6-8350-423f-9740-c980544d2099');\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-aa529a93-e020-4809-b5fd-ed4ff96b7d9c\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-aa529a93-e020-4809-b5fd-ed4ff96b7d9c')\"\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-aa529a93-e020-4809-b5fd-ed4ff96b7d9c 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 87
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.rename(columns={\"G\": \"X\"})"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "XaATkeZ8UFqp",
        "outputId": "6b801241-6835-42b8-84fb-39fbb03ec20a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       X    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c6ab7079-f7f5-498d-8a1d-4b8a38e1b8c0\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>X</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-c6ab7079-f7f5-498d-8a1d-4b8a38e1b8c0')\"\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-c6ab7079-f7f5-498d-8a1d-4b8a38e1b8c0 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-c6ab7079-f7f5-498d-8a1d-4b8a38e1b8c0');\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-e9b7d2e0-b8ee-4ae2-953b-f625bead4e09\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e9b7d2e0-b8ee-4ae2-953b-f625bead4e09')\"\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-e9b7d2e0-b8ee-4ae2-953b-f625bead4e09 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\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 89
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Indexing"
      ],
      "metadata": {
        "id": "p9lb_B1SKRdD"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.index"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vIhPbTtWKTG3",
        "outputId": "1c58f72c-7505-4f98-bd0e-2cf26e455f81"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index([1, 2, 3, 4], dtype='int64')"
            ]
          },
          "metadata": {},
          "execution_count": 90
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[1]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 478
        },
        "id": "bjZ1-VXaKVj7",
        "outputId": "d7b137c6-2013-466b-eead-a366925fa182"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "error",
          "ename": "KeyError",
          "evalue": "1",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3652\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3653\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 1",
            "\nThe above exception was the direct cause of the following exception:\n",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-91-78a33f69c558>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3759\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3760\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3761\u001b[0;31m             \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3762\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3763\u001b[0m                 \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3653\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3654\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3655\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3656\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3657\u001b[0m             \u001b[0;31m# If we have a listlike key, _check_indexing_error will raise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 1"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.loc[1]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CKaHHIhlKYwX",
        "outputId": "a77a79ca-495a-4486-f93c-50b72149ef2d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "A                    1.0\n",
              "B    2021-01-02 00:00:00\n",
              "C                    NaN\n",
              "D                      3\n",
              "E                   test\n",
              "F                    foo\n",
              "G                 [3, 4]\n",
              "X                    NaN\n",
              "Name: 1, dtype: object"
            ]
          },
          "metadata": {},
          "execution_count": 92
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"X\"].loc[1], df.loc[1][\"X\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5Ntwg4ZkKkht",
        "outputId": "639a0026-82a1-4011-cac7-c1657807938a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(nan, nan)"
            ]
          },
          "metadata": {},
          "execution_count": 93
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.loc[[1, 4]]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 112
        },
        "id": "pd2JLHPkLeNR",
        "outputId": "f32a97ae-c271-4a4c-a168-de934c865b88"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-91e4f34c-7b49-44d3-80e2-6b7b2c06e9dc\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-91e4f34c-7b49-44d3-80e2-6b7b2c06e9dc')\"\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-91e4f34c-7b49-44d3-80e2-6b7b2c06e9dc 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-91e4f34c-7b49-44d3-80e2-6b7b2c06e9dc');\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-58da9cc0-0c27-4fcc-a7d5-fda74305bad5\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-58da9cc0-0c27-4fcc-a7d5-fda74305bad5')\"\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-58da9cc0-0c27-4fcc-a7d5-fda74305bad5 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\": \"df\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 4.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 94
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#Purely integer-location based indexing for selection by position\n",
        "df.iloc[[0, 3]]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 112
        },
        "id": "YDoD6_3TL0CY",
        "outputId": "9718a6db-1355-40bf-f250-ba11b58623e4"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-2d9918e7-b36a-4533-8e39-6c910cc5484d\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-2d9918e7-b36a-4533-8e39-6c910cc5484d')\"\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-2d9918e7-b36a-4533-8e39-6c910cc5484d 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-2d9918e7-b36a-4533-8e39-6c910cc5484d');\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-bda50079-2adc-455a-85e7-b36c7d5af020\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bda50079-2adc-455a-85e7-b36c7d5af020')\"\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-bda50079-2adc-455a-85e7-b36c7d5af020 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\": \"df\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 4.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 95
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.iloc[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TzaTEG2ULiUk",
        "outputId": "9c0a46cd-5592-42e4-baf7-72e28c625ec1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "A                    1.0\n",
              "B    2021-01-02 00:00:00\n",
              "C                    NaN\n",
              "D                      3\n",
              "E                   test\n",
              "F                    foo\n",
              "G                 [3, 4]\n",
              "X                    NaN\n",
              "Name: 1, dtype: object"
            ]
          },
          "metadata": {},
          "execution_count": 96
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[df.X > 3]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81
        },
        "id": "v2E2Fn1kNFRV",
        "outputId": "3387873e-5549-4001-8f1b-3fa90ee558c3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e28f61d1-dbe2-48ec-9ff5-90d67d263d37\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-e28f61d1-dbe2-48ec-9ff5-90d67d263d37')\"\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-e28f61d1-dbe2-48ec-9ff5-90d67d263d37 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-e28f61d1-dbe2-48ec-9ff5-90d67d263d37');\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",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"df[df\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 4.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 97
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[(df.E == \"train\") & (df.X == 2)]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81
        },
        "id": "Pwuj1airNPve",
        "outputId": "7dfa609a-32b0-42a1-cadc-1400f2840adc"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-666525b3-7398-4188-958f-ccf31d4f8d5f\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</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-666525b3-7398-4188-958f-ccf31d4f8d5f')\"\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-666525b3-7398-4188-958f-ccf31d4f8d5f 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-666525b3-7398-4188-958f-ccf31d4f8d5f');\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",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"df[(df\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.0,\n        \"max\": 2.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 98
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "xqrqevu5BJyh",
        "outputId": "77f29e58-c2f2-47cf-d0f9-72918c4d8f7c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  NaN\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-575a3b68-ee8b-4c5c-b321-3cd11cb843ed\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-575a3b68-ee8b-4c5c-b321-3cd11cb843ed')\"\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-575a3b68-ee8b-4c5c-b321-3cd11cb843ed 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-575a3b68-ee8b-4c5c-b321-3cd11cb843ed');\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-0ebdb93e-dc73-4626-acaa-7003453a3131\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0ebdb93e-dc73-4626-acaa-7003453a3131')\"\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-0ebdb93e-dc73-4626-acaa-7003453a3131 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.0,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 3,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 99
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#Use at if you only need to get or set a single value in a DataFrame or Series\n",
        "#df.at(index, column)\n",
        "df.at[1, \"X\"] = 1\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "JnzzhXDtMoJo",
        "outputId": "461ad095-c6ed-4705-8762-8d4d245ebbd9"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F       G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  1.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  [3, 4]  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  [3, 4]  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-dcacad2d-6da7-4ba7-be9c-70d88c794d68\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>1.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>[3, 4]</td>\n",
              "      <td>4.0</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-dcacad2d-6da7-4ba7-be9c-70d88c794d68')\"\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-dcacad2d-6da7-4ba7-be9c-70d88c794d68 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-dcacad2d-6da7-4ba7-be9c-70d88c794d68');\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-e17ac975-9b9f-46d5-8306-e6fe132690dc\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e17ac975-9b9f-46d5-8306-e6fe132690dc')\"\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-e17ac975-9b9f-46d5-8306-e6fe132690dc 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 100
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.at[1, \"X\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "b23fBiawV3b2",
        "outputId": "b849348a-cdfe-4f01-f89e-fefb70dafe3a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1.0"
            ]
          },
          "metadata": {},
          "execution_count": 101
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.iloc[2][\"X\"]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5zaHaYanWBtE",
        "outputId": "b72779e7-1b01-45bc-b158-c91f021b3152"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "3.0"
            ]
          },
          "metadata": {},
          "execution_count": 104
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.G = 1\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "25m43f2ENXo1",
        "outputId": "cd7e7d5a-967b-41d3-894b-3fb85057db83"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-60081b8f-01ee-4764-8de1-5751207e62f1\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</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-60081b8f-01ee-4764-8de1-5751207e62f1')\"\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-60081b8f-01ee-4764-8de1-5751207e62f1 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-60081b8f-01ee-4764-8de1-5751207e62f1');\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-e609a227-9e7e-4d02-84a8-ccc2b6f7fd67\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e609a227-9e7e-4d02-84a8-ccc2b6f7fd67')\"\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-e609a227-9e7e-4d02-84a8-ccc2b6f7fd67 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 102
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### More manipulations: apply"
      ],
      "metadata": {
        "id": "AkE5_MjPOtLP"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"X2_1\"] = df[\"X\"].apply(lambda x: x*2)\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "X965-qBHNvqF",
        "outputId": "e4566f74-b638-466f-f35a-5473005057a1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_1\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-7b3850c8-7ab1-415f-9ac8-b310e7aec5cd\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_1</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</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-7b3850c8-7ab1-415f-9ac8-b310e7aec5cd')\"\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-7b3850c8-7ab1-415f-9ac8-b310e7aec5cd 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-7b3850c8-7ab1-415f-9ac8-b310e7aec5cd');\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-139dc145-6e91-47bc-8a32-582f7044d3aa\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-139dc145-6e91-47bc-8a32-582f7044d3aa')\"\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-139dc145-6e91-47bc-8a32-582f7044d3aa 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 105
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def double_val(x):\n",
        "    return x*2"
      ],
      "metadata": {
        "id": "h7v5Y3ajN8wf"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"X2_2\"] = df[\"X\"].apply(lambda x: double_val(x))\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "sK_W19QYOFyW",
        "outputId": "08217efd-b8a3-4258-88f2-8858c36b638e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_1  X2_2\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-54dfcbf8-d960-4d30-a245-0f195dde24f8\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_1</th>\n",
              "      <th>X2_2</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-54dfcbf8-d960-4d30-a245-0f195dde24f8')\"\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-54dfcbf8-d960-4d30-a245-0f195dde24f8 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-54dfcbf8-d960-4d30-a245-0f195dde24f8');\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-167c8982-a436-4490-b4f8-f084c4d5a3dd\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-167c8982-a436-4490-b4f8-f084c4d5a3dd')\"\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-167c8982-a436-4490-b4f8-f084c4d5a3dd 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 107
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"X2_3\"] = df[\"X\"].apply(double_val)\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "GPEJn2IWObUY",
        "outputId": "c38c8143-9541-40c2-b790-43fccdd394fd"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_1  X2_2  X2_3\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0   2.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0   6.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-385eac9c-2f52-4546-81a8-64ed0238ad01\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_1</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-385eac9c-2f52-4546-81a8-64ed0238ad01')\"\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-385eac9c-2f52-4546-81a8-64ed0238ad01 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-385eac9c-2f52-4546-81a8-64ed0238ad01');\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-da09b989-166a-46ce-9176-eb1aa9371e08\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-da09b989-166a-46ce-9176-eb1aa9371e08')\"\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-da09b989-166a-46ce-9176-eb1aa9371e08 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 108
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df[\"X2_4\"] = df[\"X\"] * 2\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "Tk6exDHQOmFB",
        "outputId": "b9363ab5-84ca-4eb0-de02-f0b0484f7489"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_1  X2_2  X2_3  X2_4\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0   2.0   2.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0   4.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0   6.0   6.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0   8.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-dc0f9fec-a9a0-4240-9f05-dede7036ea4b\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_1</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-dc0f9fec-a9a0-4240-9f05-dede7036ea4b')\"\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-dc0f9fec-a9a0-4240-9f05-dede7036ea4b 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-dc0f9fec-a9a0-4240-9f05-dede7036ea4b');\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-869b9bb3-88d7-49a6-b8a5-114826f458a0\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-869b9bb3-88d7-49a6-b8a5-114826f458a0')\"\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-869b9bb3-88d7-49a6-b8a5-114826f458a0 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 109
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Apply documentation is [here](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html)\n",
        "\n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ],
      "metadata": {
        "id": "KeJDhygs5tbu"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df['CGX'] = df.apply(lambda x: (x['C'] + x['X']) / x['G'] if x['X'] > 2 else 0, axis=1)\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "SlxATiQXPBce",
        "outputId": "c58fc8b8-be67-4bc5-ad82-841a96e0a7a3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_1  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0   8.0  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-749655ba-b3ad-4314-9285-c9065395185b\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_1</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-749655ba-b3ad-4314-9285-c9065395185b')\"\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-749655ba-b3ad-4314-9285-c9065395185b 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-749655ba-b3ad-4314-9285-c9065395185b');\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-4828e148-7d1f-496c-aeae-a2cf83ffedf9\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4828e148-7d1f-496c-aeae-a2cf83ffedf9')\"\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-4828e148-7d1f-496c-aeae-a2cf83ffedf9 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 110
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Removing of columns/rows"
      ],
      "metadata": {
        "id": "0Vn_7QnGPr6p"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "a = df.drop(columns=['X2_1'], inplace=True)\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "0lh-QAqHPx3E",
        "outputId": "2bb87f67-85f9-492e-cede-22bdc10bfe1a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c3ad03ce-da92-4d32-bbe8-45eab1c3e45a\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-c3ad03ce-da92-4d32-bbe8-45eab1c3e45a')\"\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-c3ad03ce-da92-4d32-bbe8-45eab1c3e45a 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-c3ad03ce-da92-4d32-bbe8-45eab1c3e45a');\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-89529181-98a5-48d8-9fce-6f0659310bea\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-89529181-98a5-48d8-9fce-6f0659310bea')\"\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-89529181-98a5-48d8-9fce-6f0659310bea 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 111
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "a"
      ],
      "metadata": {
        "id": "trmM1_f0Dl5k"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df.drop(['B', 'C'], axis=1)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "XXvP784dQAMh",
        "outputId": "31f7a854-6990-4c9c-f22d-d608740f854c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0  3  train  foo  1  4.0   8.0   8.0   8.0  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-7c5b08f4-8856-4644-9f19-5aa30cc0a07d\" 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>A</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-7c5b08f4-8856-4644-9f19-5aa30cc0a07d')\"\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-7c5b08f4-8856-4644-9f19-5aa30cc0a07d 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-7c5b08f4-8856-4644-9f19-5aa30cc0a07d');\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-780eb537-6f86-4ba7-819e-b84dcdf88f1b\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-780eb537-6f86-4ba7-819e-b84dcdf88f1b')\"\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-780eb537-6f86-4ba7-819e-b84dcdf88f1b 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\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"foo\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 113
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "SNzjcn1uQY6C",
        "outputId": "a8859fe1-2494-40f2-cbe3-007f305336a8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02 NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02 NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-9ad90070-7c63-4189-b0cd-f8a70d280147\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-9ad90070-7c63-4189-b0cd-f8a70d280147')\"\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-9ad90070-7c63-4189-b0cd-f8a70d280147 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-9ad90070-7c63-4189-b0cd-f8a70d280147');\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-971b2538-0f92-4f83-b119-9d78e859467e\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-971b2538-0f92-4f83-b119-9d78e859467e')\"\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-971b2538-0f92-4f83-b119-9d78e859467e 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.2909944487358056,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.581988897471611,\n        \"min\": 2.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 4,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 114
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.drop([1, 3], axis=0)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 112
        },
        "id": "0czur8Q2QblJ",
        "outputId": "030b870e-e9ae-4033-df84-95da0ce70a92"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B   C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "2  1.0 2021-01-02 NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "4  1.0 2021-01-02 NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-f14d6431-9296-42ac-adac-98707ffaa51b\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</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-f14d6431-9296-42ac-adac-98707ffaa51b')\"\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-f14d6431-9296-42ac-adac-98707ffaa51b 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-f14d6431-9296-42ac-adac-98707ffaa51b');\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-4717c190-1ceb-42c5-9fc5-371928468f33\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4717c190-1ceb-42c5-9fc5-371928468f33')\"\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-4717c190-1ceb-42c5-9fc5-371928468f33 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\": \"df\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 1.0,\n        \"max\": 1.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2021-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"float32\",\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.4142135623730951,\n        \"min\": 2.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.8284271247461903,\n        \"min\": 4.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.8284271247461903,\n        \"min\": 4.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2.8284271247461903,\n        \"min\": 4.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 2,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 0.0,\n        \"max\": 0.0,\n        \"num_unique_values\": 1,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 115
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Adding row to dataframe"
      ],
      "metadata": {
        "id": "MAvcYUuAGPZf"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.loc[6] = [2.1, pd.Timestamp(\"20230102\"), 2.5, 4, \"test\", \"bar\", 5, 5, 10, 10, 10, 6]\n",
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "mnyn26KVGU0N",
        "outputId": "7bbdfa93-5009-4acc-b2a2-91bae31b9f77"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "6  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-f9c3e6b5-17d6-424f-908e-e9c89fb7017d\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-f9c3e6b5-17d6-424f-908e-e9c89fb7017d')\"\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-f9c3e6b5-17d6-424f-908e-e9c89fb7017d 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-f9c3e6b5-17d6-424f-908e-e9c89fb7017d');\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-968b132b-c16c-43af-8bfc-ca6ba8d59d86\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-968b132b-c16c-43af-8bfc-ca6ba8d59d86')\"\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-968b132b-c16c-43af-8bfc-ca6ba8d59d86 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.49193495504995377,\n        \"min\": 1.0,\n        \"max\": 2.1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.1,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2023-01-02 00:00:00\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2023-01-02 00:00:00\",\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 3,\n        \"max\": 4,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.5811388300841898,\n        \"min\": 1.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.4641016151377544,\n        \"min\": 0.0,\n        \"max\": 6.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          6.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 116
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "There is an [append](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.append.html) method. **But do not use it, it is depricated!**"
      ],
      "metadata": {
        "id": "IP3hJlneI1Lr"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "As well you can use [concat](https://pandas.pydata.org/docs/reference/api/pandas.concat.html) for adding new row/rows"
      ],
      "metadata": {
        "id": "OXF6Xu_MJ_bM"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df2 = pd.DataFrame([[2.1, pd.Timestamp(\"20230102\"), 2.5, 4, \"test\", \"bar\", 5, 5, 10, 10, 10, 6]], columns = df.columns)\n",
        "df2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81
        },
        "id": "NpFRdJ7KJGi8",
        "outputId": "779d8d91-649b-4891-d3a5-6f09e51b2582"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D     E    F  G  X  X2_2  X2_3  X2_4  CGX\n",
              "0  2.1 2023-01-02  2.5  4  test  bar  5  5    10    10    10    6"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-f88270df-9681-4238-826c-a2139d530e7a\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5</td>\n",
              "      <td>10</td>\n",
              "      <td>10</td>\n",
              "      <td>10</td>\n",
              "      <td>6</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-f88270df-9681-4238-826c-a2139d530e7a')\"\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-f88270df-9681-4238-826c-a2139d530e7a 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-f88270df-9681-4238-826c-a2139d530e7a');\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",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df2",
              "summary": "{\n  \"name\": \"df2\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.1,\n        \"max\": 2.1,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2023-01-02 00:00:00\",\n        \"max\": \"2023-01-02 00:00:00\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"2023-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 4,\n        \"max\": 4,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"test\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 5,\n        \"max\": 5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 5,\n        \"max\": 5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 10,\n        \"max\": 10,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          10\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 10,\n        \"max\": 10,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          10\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 10,\n        \"max\": 10,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          10\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 6,\n        \"max\": 6,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          6\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 117
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "lpmWxwQoaShq",
        "outputId": "30017d15-135b-4c53-b102-0a7135093d31"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "6  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-437bc071-f7ea-4283-a5dd-f075322ea43a\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-437bc071-f7ea-4283-a5dd-f075322ea43a')\"\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-437bc071-f7ea-4283-a5dd-f075322ea43a 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-437bc071-f7ea-4283-a5dd-f075322ea43a');\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-a7db45f0-5b66-456a-ab81-8a8093a7f9ed\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a7db45f0-5b66-456a-ab81-8a8093a7f9ed')\"\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-a7db45f0-5b66-456a-ab81-8a8093a7f9ed 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": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.49193495504995377,\n        \"min\": 1.0,\n        \"max\": 2.1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.1,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2023-01-02 00:00:00\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2023-01-02 00:00:00\",\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 3,\n        \"max\": 4,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.5811388300841898,\n        \"min\": 1.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.4641016151377544,\n        \"min\": 0.0,\n        \"max\": 6.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          6.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 118
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df3 = pd.concat([df, df2])\n",
        "df3"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 237
        },
        "id": "Qrgv6JMBJiQu",
        "outputId": "f89bef10-1b36-4473-e35e-ca5cf26e3d6a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0 2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0 2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0 2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0 2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "6  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0\n",
              "0  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-7a515452-1a44-40c6-93ec-b79527d17d66\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-7a515452-1a44-40c6-93ec-b79527d17d66')\"\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-7a515452-1a44-40c6-93ec-b79527d17d66 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-7a515452-1a44-40c6-93ec-b79527d17d66');\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-5bbb7ba1-d644-4e32-a25c-74339d58c765\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-5bbb7ba1-d644-4e32-a25c-74339d58c765')\"\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-5bbb7ba1-d644-4e32-a25c-74339d58c765 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": "df3",
              "summary": "{\n  \"name\": \"df3\",\n  \"rows\": 6,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.5680375574437546,\n        \"min\": 1.0,\n        \"max\": 2.1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.1,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2023-01-02 00:00:00\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2023-01-02 00:00:00\",\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 3,\n        \"max\": 4,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.632993161855452,\n        \"min\": 1.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.4641016151377544,\n        \"min\": 0.0,\n        \"max\": 6.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          6.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 119
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df4 = pd.concat([df, df2], ignore_index=True)\n",
        "df4"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 237
        },
        "id": "b8dhOIUbJ1FL",
        "outputId": "c1be46e1-d88c-4d6d-9642-1836f9635eba"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A          B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "0  1.0 2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "1  1.0 2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "2  1.0 2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "3  1.0 2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "4  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0\n",
              "5  2.1 2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e92a7b7b-544d-4f77-9cd0-1e46ec43c40f\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-e92a7b7b-544d-4f77-9cd0-1e46ec43c40f')\"\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-e92a7b7b-544d-4f77-9cd0-1e46ec43c40f 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-e92a7b7b-544d-4f77-9cd0-1e46ec43c40f');\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-3524e637-6476-4346-b18c-d270391e8a2b\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3524e637-6476-4346-b18c-d270391e8a2b')\"\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-3524e637-6476-4346-b18c-d270391e8a2b 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": "df4",
              "summary": "{\n  \"name\": \"df4\",\n  \"rows\": 6,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.5680375574437546,\n        \"min\": 1.0,\n        \"max\": 2.1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.1,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2021-01-02 00:00:00\",\n        \"max\": \"2023-01-02 00:00:00\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2023-01-02 00:00:00\",\n          \"2021-01-02 00:00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 3,\n        \"max\": 4,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.632993161855452,\n        \"min\": 1.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.265986323710904,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.4641016151377544,\n        \"min\": 0.0,\n        \"max\": 6.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          6.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 120
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Merging dataframes"
      ],
      "metadata": {
        "id": "ICd_ALPd7e2D"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "left = pd.DataFrame(\n",
        "    {\n",
        "        \"key\": [\"K0\", \"K1\", \"K2\", \"K3\"],\n",
        "        \"A\": [\"A0\", \"A1\", \"A2\", \"A3\"],\n",
        "        \"B\": [\"B0\", \"B1\", \"B2\", \"B3\"],\n",
        "    }\n",
        ")\n",
        "right = pd.DataFrame(\n",
        "    {\n",
        "        \"key\": [\"K0\", \"K1\", \"K2\", \"K4\"],\n",
        "        \"C\": [\"C0\", \"C1\", \"C2\", \"C3\"],\n",
        "        \"D\": [\"D0\", \"D1\", \"D2\", \"D3\"],\n",
        "    }\n",
        ")\n",
        "\n",
        "\n",
        "result = pd.merge(left, right, on=\"key\")\n",
        "result"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 143
        },
        "id": "u28TThSI7uHY",
        "outputId": "b879428e-8181-45c9-e5e6-31514d2a7c18"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  key   A   B   C   D\n",
              "0  K0  A0  B0  C0  D0\n",
              "1  K1  A1  B1  C1  D1\n",
              "2  K2  A2  B2  C2  D2"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-5eae5928-f825-4c4b-96e5-8ba5dbff272c\" 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>key</th>\n",
              "      <th>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>K0</td>\n",
              "      <td>A0</td>\n",
              "      <td>B0</td>\n",
              "      <td>C0</td>\n",
              "      <td>D0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>K1</td>\n",
              "      <td>A1</td>\n",
              "      <td>B1</td>\n",
              "      <td>C1</td>\n",
              "      <td>D1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>K2</td>\n",
              "      <td>A2</td>\n",
              "      <td>B2</td>\n",
              "      <td>C2</td>\n",
              "      <td>D2</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-5eae5928-f825-4c4b-96e5-8ba5dbff272c')\"\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-5eae5928-f825-4c4b-96e5-8ba5dbff272c 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-5eae5928-f825-4c4b-96e5-8ba5dbff272c');\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-d76d93c0-09e3-49d8-b3c2-d64f360c9552\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d76d93c0-09e3-49d8-b3c2-d64f360c9552')\"\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-d76d93c0-09e3-49d8-b3c2-d64f360c9552 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": "result",
              "summary": "{\n  \"name\": \"result\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"key\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"K0\",\n          \"K1\",\n          \"K2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"A0\",\n          \"A1\",\n          \"A2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"B0\",\n          \"B1\",\n          \"B2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"C0\",\n          \"C1\",\n          \"C2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"D0\",\n          \"D1\",\n          \"D2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 121
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pd.merge(left, right, on=\"key\", how=\"inner\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 143
        },
        "id": "YzYjWihm8cP3",
        "outputId": "fb4b23b3-6be0-4cd5-cb12-668c072d25c3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  key   A   B   C   D\n",
              "0  K0  A0  B0  C0  D0\n",
              "1  K1  A1  B1  C1  D1\n",
              "2  K2  A2  B2  C2  D2"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-966c10e6-09d8-44a0-bf2d-6f736d0a116f\" 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>key</th>\n",
              "      <th>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>K0</td>\n",
              "      <td>A0</td>\n",
              "      <td>B0</td>\n",
              "      <td>C0</td>\n",
              "      <td>D0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>K1</td>\n",
              "      <td>A1</td>\n",
              "      <td>B1</td>\n",
              "      <td>C1</td>\n",
              "      <td>D1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>K2</td>\n",
              "      <td>A2</td>\n",
              "      <td>B2</td>\n",
              "      <td>C2</td>\n",
              "      <td>D2</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-966c10e6-09d8-44a0-bf2d-6f736d0a116f')\"\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-966c10e6-09d8-44a0-bf2d-6f736d0a116f 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-966c10e6-09d8-44a0-bf2d-6f736d0a116f');\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-91c2290f-b388-40f1-9135-bd0801933132\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-91c2290f-b388-40f1-9135-bd0801933132')\"\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-91c2290f-b388-40f1-9135-bd0801933132 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\": \"pd\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"key\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"K0\",\n          \"K1\",\n          \"K2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"A0\",\n          \"A1\",\n          \"A2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"B0\",\n          \"B1\",\n          \"B2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"C0\",\n          \"C1\",\n          \"C2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"D0\",\n          \"D1\",\n          \"D2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 122
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pd.merge(left, right, on=\"key\", how=\"left\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "Vb7xU4wj8MMQ",
        "outputId": "5cd9b1d0-bde4-42fb-e41f-4f8315d6162f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  key   A   B    C    D\n",
              "0  K0  A0  B0   C0   D0\n",
              "1  K1  A1  B1   C1   D1\n",
              "2  K2  A2  B2   C2   D2\n",
              "3  K3  A3  B3  NaN  NaN"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3d56f740-18d8-4d00-b446-5c57777690f4\" 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>key</th>\n",
              "      <th>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>K0</td>\n",
              "      <td>A0</td>\n",
              "      <td>B0</td>\n",
              "      <td>C0</td>\n",
              "      <td>D0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>K1</td>\n",
              "      <td>A1</td>\n",
              "      <td>B1</td>\n",
              "      <td>C1</td>\n",
              "      <td>D1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>K2</td>\n",
              "      <td>A2</td>\n",
              "      <td>B2</td>\n",
              "      <td>C2</td>\n",
              "      <td>D2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>K3</td>\n",
              "      <td>A3</td>\n",
              "      <td>B3</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-3d56f740-18d8-4d00-b446-5c57777690f4')\"\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-3d56f740-18d8-4d00-b446-5c57777690f4 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-3d56f740-18d8-4d00-b446-5c57777690f4');\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-50353204-7b24-4fd0-9d07-6dca8a118f16\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-50353204-7b24-4fd0-9d07-6dca8a118f16')\"\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-50353204-7b24-4fd0-9d07-6dca8a118f16 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\": \"pd\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"key\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"K1\",\n          \"K3\",\n          \"K0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"A1\",\n          \"A3\",\n          \"A0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"B1\",\n          \"B3\",\n          \"B0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"C0\",\n          \"C1\",\n          \"C2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"D0\",\n          \"D1\",\n          \"D2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 123
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pd.merge(left, right, on=\"key\", how=\"right\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        },
        "id": "kJUYu85C8Rn6",
        "outputId": "53734ffd-6c2d-4213-9647-9f97a0971cc3"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  key    A    B   C   D\n",
              "0  K0   A0   B0  C0  D0\n",
              "1  K1   A1   B1  C1  D1\n",
              "2  K2   A2   B2  C2  D2\n",
              "3  K4  NaN  NaN  C3  D3"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-6518f6ef-2a5a-419c-97e7-4d729026ca07\" 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>key</th>\n",
              "      <th>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>K0</td>\n",
              "      <td>A0</td>\n",
              "      <td>B0</td>\n",
              "      <td>C0</td>\n",
              "      <td>D0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>K1</td>\n",
              "      <td>A1</td>\n",
              "      <td>B1</td>\n",
              "      <td>C1</td>\n",
              "      <td>D1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>K2</td>\n",
              "      <td>A2</td>\n",
              "      <td>B2</td>\n",
              "      <td>C2</td>\n",
              "      <td>D2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>K4</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>C3</td>\n",
              "      <td>D3</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-6518f6ef-2a5a-419c-97e7-4d729026ca07')\"\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-6518f6ef-2a5a-419c-97e7-4d729026ca07 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-6518f6ef-2a5a-419c-97e7-4d729026ca07');\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-0f72ae0e-846e-491d-b73a-64507e43bc08\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0f72ae0e-846e-491d-b73a-64507e43bc08')\"\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-0f72ae0e-846e-491d-b73a-64507e43bc08 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\": \"pd\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"key\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"K1\",\n          \"K4\",\n          \"K0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"A0\",\n          \"A1\",\n          \"A2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"B0\",\n          \"B1\",\n          \"B2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"C1\",\n          \"C3\",\n          \"C0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"D1\",\n          \"D3\",\n          \"D0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 124
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "pd.merge(left, right, on=\"key\", how=\"outer\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "-XzO__eL8Xcc",
        "outputId": "3a75f791-5c33-4edc-f3aa-e132d5120ec8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  key    A    B    C    D\n",
              "0  K0   A0   B0   C0   D0\n",
              "1  K1   A1   B1   C1   D1\n",
              "2  K2   A2   B2   C2   D2\n",
              "3  K3   A3   B3  NaN  NaN\n",
              "4  K4  NaN  NaN   C3   D3"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-6c84fb21-f857-4bbc-991c-ef5067ea7673\" 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>key</th>\n",
              "      <th>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>K0</td>\n",
              "      <td>A0</td>\n",
              "      <td>B0</td>\n",
              "      <td>C0</td>\n",
              "      <td>D0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>K1</td>\n",
              "      <td>A1</td>\n",
              "      <td>B1</td>\n",
              "      <td>C1</td>\n",
              "      <td>D1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>K2</td>\n",
              "      <td>A2</td>\n",
              "      <td>B2</td>\n",
              "      <td>C2</td>\n",
              "      <td>D2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>K3</td>\n",
              "      <td>A3</td>\n",
              "      <td>B3</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>K4</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>C3</td>\n",
              "      <td>D3</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-6c84fb21-f857-4bbc-991c-ef5067ea7673')\"\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-6c84fb21-f857-4bbc-991c-ef5067ea7673 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-6c84fb21-f857-4bbc-991c-ef5067ea7673');\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-381dc948-93e7-4f95-a3f7-defd0ba94006\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-381dc948-93e7-4f95-a3f7-defd0ba94006')\"\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-381dc948-93e7-4f95-a3f7-defd0ba94006 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\": \"pd\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"key\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"K1\",\n          \"K4\",\n          \"K2\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"A1\",\n          \"A3\",\n          \"A0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"B1\",\n          \"B3\",\n          \"B0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"C1\",\n          \"C3\",\n          \"C0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"D1\",\n          \"D3\",\n          \"D0\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 125
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "[Merge, join, concatenate and compare](https://pandas.pydata.org/docs/user_guide/merging.html) article"
      ],
      "metadata": {
        "id": "_ClnOGPD6sw4"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Save and read DataFrame to csv file"
      ],
      "metadata": {
        "id": "3QvarGWZQqnl"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.to_csv('res_lecture_3.csv', sep=';', index=False)"
      ],
      "metadata": {
        "id": "fyTYVVqwQnrX"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df2 = pd.read_csv('res_lecture_3.csv', sep=';')\n",
        "df2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "YvBuQZGIRlPm",
        "outputId": "fde96192-10ba-4f1b-c426-898c362542c6"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A           B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "0  1.0  2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "1  1.0  2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "2  1.0  2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "3  1.0  2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "4  2.1  2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-b06b347b-3413-4bb7-a69b-77fdfabf9b03\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-b06b347b-3413-4bb7-a69b-77fdfabf9b03')\"\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-b06b347b-3413-4bb7-a69b-77fdfabf9b03 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-b06b347b-3413-4bb7-a69b-77fdfabf9b03');\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-56b86c44-0ac2-483b-8d76-6268404e234a\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-56b86c44-0ac2-483b-8d76-6268404e234a')\"\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-56b86c44-0ac2-483b-8d76-6268404e234a 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": "df2",
              "summary": "{\n  \"name\": \"df2\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"A\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.49193495504995377,\n        \"min\": 1.0,\n        \"max\": 2.1,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.1,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"B\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"2023-01-02\",\n          \"2021-01-02\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"C\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 2.5,\n        \"max\": 2.5,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"D\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 3,\n        \"max\": 4,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          4\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"E\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"train\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"F\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"bar\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"G\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 1,\n        \"max\": 5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1.5811388300841898,\n        \"min\": 1.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          2.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_3\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"X2_4\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.1622776601683795,\n        \"min\": 2.0,\n        \"max\": 10.0,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CGX\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.4641016151377544,\n        \"min\": 0.0,\n        \"max\": 6.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          6.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 131
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df2 = pd.read_csv('res_lecture_3.csv', sep=';', index_col=0)\n",
        "df2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "5p9uw4qLR1qQ",
        "outputId": "53624830-31f5-4221-b6bd-84318c89b3e6"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "     A           B    C  D      E    F  G    X  X2_2  X2_3  X2_4  CGX\n",
              "1  1.0  2021-01-02  NaN  3   test  foo  1  1.0   2.0   2.0   2.0  0.0\n",
              "2  1.0  2021-01-02  NaN  3  train  foo  1  2.0   4.0   4.0   4.0  0.0\n",
              "3  1.0  2021-01-02  NaN  3   test  foo  1  3.0   6.0   6.0   6.0  NaN\n",
              "4  1.0  2021-01-02  NaN  3  train  foo  1  4.0   8.0   8.0   8.0  NaN\n",
              "6  2.1  2023-01-02  2.5  4   test  bar  5  5.0  10.0  10.0  10.0  6.0"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-baf49574-4576-44bf-b7c8-41cb21547961\" 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>A</th>\n",
              "      <th>B</th>\n",
              "      <th>C</th>\n",
              "      <th>D</th>\n",
              "      <th>E</th>\n",
              "      <th>F</th>\n",
              "      <th>G</th>\n",
              "      <th>X</th>\n",
              "      <th>X2_2</th>\n",
              "      <th>X2_3</th>\n",
              "      <th>X2_4</th>\n",
              "      <th>CGX</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>2.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>2.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4.0</td>\n",
              "      <td>0.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>test</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>3.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>6.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1.0</td>\n",
              "      <td>2021-01-02</td>\n",
              "      <td>NaN</td>\n",
              "      <td>3</td>\n",
              "      <td>train</td>\n",
              "      <td>foo</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>8.0</td>\n",
              "      <td>NaN</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2.1</td>\n",
              "      <td>2023-01-02</td>\n",
              "      <td>2.5</td>\n",
              "      <td>4</td>\n",
              "      <td>test</td>\n",
              "      <td>bar</td>\n",
              "      <td>5</td>\n",
              "      <td>5.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>10.0</td>\n",
              "      <td>6.0</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-baf49574-4576-44bf-b7c8-41cb21547961')\"\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-baf49574-4576-44bf-b7c8-41cb21547961 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-baf49574-4576-44bf-b7c8-41cb21547961');\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-5f8dd14f-24b5-4af6-889b-aaa0f4c22db2\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-5f8dd14f-24b5-4af6-889b-aaa0f4c22db2')\"\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-5f8dd14f-24b5-4af6-889b-aaa0f4c22db2 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": "df2",
              "repr_error": "0"
            }
          },
          "metadata": {},
          "execution_count": 128
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "nQGBPTJjeJg0"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}