{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pandas\n", "\n", "[Cheat Sheet](https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>我</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>4</td>\n", " <td>8</td>\n", " <td>11</td>\n", " <td>今天</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>6</td>\n", " <td>9</td>\n", " <td>12</td>\n", " <td>沒</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>20</td>\n", " <td>吃飽</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text\n", "0 4 7 10 我\n", "1 4 8 11 今天\n", "2 6 9 12 沒\n", "3 5 15 20 吃飽" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df = pd.DataFrame({\n", " \"a\" : [4 ,4, 6, 5],\n", " \"b\" : [7.0, 8.0, 9.0, 15.0],\n", " \"c\" : [10.0, 11.0, 12.0, 20.0],\n", " \"text\": ['我', '今天', '沒', '吃飽']\n", "})\n", "\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic Data Frame Manitpulation\n", "\n", "### Sort Values\n", "\n", "- `df.sort_values('a')`\n", "- `df.sort_values('a',ascending=False)`\n", "\n", "### Columns\n", "\n", "- `df.drop(columns=['a','c'])`\n", "- `df[list_of_COLNAMES]`: `df[['a','b','c']]`\n", " - returns df\n", "- `df.select_dtypes(include=['float64'])`\n", "- `df.select_dtypes(exclude=['float64'])`\n", "- `df[COLNAME]`: `df['width']`\n", " - returns series\n", "\n", "### Rows\n", "\n", "- `df.head()`, `df.tail()`\n", "- `df.iloc[:3]`\n", "- `df[df[\"a\"] > 4]`, `df[~(df[\"a\"] > 4)]` `df[df['a'].isin({5, 6})]`\n", "- `df.drop_duplicates()`\n", "- `df.sample(frac=0.5)`, df.sample(n=100)\n", "\n", "\n", "### Rows + Columns\n", "\n", "- `df.iloc[:3, [0, 2]]`\n", "- `df.iloc[:3][['a', 'b']]`\n", "\n", "\n", "### Cell Value\n", "\n", "df.at[num, colname]:\n", "\n", "- `df.at[0, 'c']`\n", "- assign: `df.at[0, 'new_text'] = '今天星期一'`\n", "\n", "## Text Processing" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>1</th>\n", " <td>4</td>\n", " <td>8</td>\n", " <td>11</td>\n", " <td>今天</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>20</td>\n", " <td>吃飽</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text\n", "1 4 8 11 今天\n", "3 5 15 20 吃飽" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[df[\"text\"].str.match('..')]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>我</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>6</td>\n", " <td>9</td>\n", " <td>12</td>\n", " <td>沒</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text\n", "0 4 7 10 我\n", "2 6 9 12 沒" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[df[\"text\"].isin({'我', '沒'})]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " <th>new_text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>我</td>\n", " <td>今天星期一</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>4</td>\n", " <td>8</td>\n", " <td>11</td>\n", " <td>今天</td>\n", " <td>NaN</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>6</td>\n", " <td>9</td>\n", " <td>12</td>\n", " <td>沒</td>\n", " <td>NaN</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>20</td>\n", " <td>吃飽</td>\n", " <td>NaN</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text new_text\n", "0 4 7 10 我 今天星期一\n", "1 4 8 11 今天 NaN\n", "2 6 9 12 沒 NaN\n", "3 5 15 20 吃飽 NaN" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.at[0, 'new_text'] = '今天星期一'\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Iteration" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "Cell 0: 4\n", "Cell 1: 7\n", "Cell 2: 10\n", "Cell 3: 我\n", "\n", "1\n", "Cell 0: 4\n", "Cell 1: 8\n", "Cell 2: 11\n", "Cell 3: 今天\n", "\n", "2\n", "Cell 0: 6\n", "Cell 1: 9\n", "Cell 2: 12\n", "Cell 3: 沒\n", "\n", "3\n", "Cell 0: 5\n", "Cell 1: 15\n", "Cell 2: 20\n", "Cell 3: 吃飽\n", "\n" ] } ], "source": [ "for i, row in df.iterrows():\n", " print(i)\n", " print(f\"Cell 0: {row[0]}\")\n", " print(f\"Cell 1: {row[1]}\")\n", " print(f\"Cell 2: {row[2]}\")\n", " print(f\"Cell 3: {row[3]}\")\n", " print()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " <th>new_text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>我</td>\n", " <td>今天星期日</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>4</td>\n", " <td>8</td>\n", " <td>11</td>\n", " <td>今天</td>\n", " <td>今天星期一</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>6</td>\n", " <td>9</td>\n", " <td>12</td>\n", " <td>沒</td>\n", " <td>今天星期二</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>20</td>\n", " <td>吃飽</td>\n", " <td>今天星期三</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text new_text\n", "0 4 7 10 我 今天星期日\n", "1 4 8 11 今天 今天星期一\n", "2 6 9 12 沒 今天星期二\n", "3 5 15 20 吃飽 今天星期三" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "day = list('日一二三四五六')\n", "\n", "for i, row in df.iterrows():\n", " df.at[i, 'new_text'] = f\"今天星期{day[i]}\"\n", "\n", "df" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Colname: a\n", "Colname: b\n", "Colname: c\n", "Colname: text\n", "Colname: new_text\n" ] } ], "source": [ "for col in df:\n", " print(f\"Colname: {col}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting\n", "\n", "### Setting up `matplotlib` display options in Jupyter notebook" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.rcParams['figure.figsize'] = (8, 5)\n", "plt.rcParams['font.family'] = ['AR PL KaitiM Big5'] # Custom font (installed on computer, .ttf format)\n", "plt.rcParams['font.sans-serif'] = ['DejaVu Sans'] # Custom font (installed on computer, .ttf format)\n", "plt.rcParams.update({'font.size': 18})\n", "plt.rcParams['axes.unicode_minus'] = False" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7f50dc799090>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 576x360 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df['a'].plot.hist()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7f50d8d234d0>" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAEzCAYAAABHfrtkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfNElEQVR4nO3de7QdZX3/8fcXArlAUi4J5aIBWkAu9YeFBAsLRFERpBouvyyBRUStplIrWEVEvGGlKgrFoktdUaqiti77o+UuEC0g9h5bjKEVQjEixCDhCATIjfD9/TET2GzOydmTs/fsnTPv11pZO/uZmWe+Z1ZO9mfPPPNMZCaSJKlZtup3AZIkqX4GAEmSGsgAIElSAxkAJElqIAOAJEkNZACQJKmBJvS7gDpNnz4999prr36XIUlSbX784x+vzMwZ7e2NCgB77bUXixYt6ncZkiTVJiJ+MVy7lwAkSWogA4AkSQ1kAJAkqYEMAJIkNZABQJKkBqo9AETEERFxXURcFhHXR8SbNqOP2RHxzYi4JCJujoiDelGrJEnjVa23AUbE7wF/DxyamQ9GxG8D90TEzzPz3zvsYxfgb4CXZ+ZQRJwCfC8iDszMJ3pXvSRJ40fd8wC8E1gHLAfIzIci4p+BM4GOAgDwbmBhZg6V768GvgTMAb7d3XIlSf3y2GOPsXLlStatW9fvUgbK1ltvzdSpU9lpp52YOHHiZvdTdwCYAEwHtgXWlm1PArt1snFEBHAq8KGNbZm5ISJuAOZiAJCkcWHNmjU89NBDvOhFL2Ly5MkU//0rM1m/fj2PP/44999/PzNnztzsEFD3GIALgFdl5lqAiNgKeCmdf/vfGdgHuKet/W7ggG4VKUnqr4cffpgZM2YwZcoUP/xbRATbbrst06dPZ8cdd2RoaGj0jUZQawDIzKHM/LeWprcBK4HLO+xi9/K1/Sd+iA7PIkiSBt+aNWvYfvvt+13GQJs2bRqrVq3a7O378iyAiLgM2AWYTXFWYE2Hm04rXze0ta9hhDATEfOB+QAzZ86sXOumXLaw/UTE4Pmz1+7X7xIkqbKnn36aCRMa9biayrbZZhs2bGj/OOxcv47uBzJzXURsB9wEHAm8p4PtHi1fJ7e1TwMeGG6DzFwALACYNWtWbl65kqS6eep/08Z6fGq9BBARc8rb9dYBZOaTwBeBd0XEth10sZRi8GD76f69gSVdLVaSpHGstgAQEdtQzAHw/rZFT1GciZjYsu5+EXFlRBzXumI5ePB64NC2Po4Eruh60ZIkjVO1XQLIzPURcS2QEbFVZj5T3tb3RuDqzGwdyXAOMA84hOISQasLgW9FxBWZuSoiXkoxJuCW3v8UkqR+G7TxV1vqWKu6xwDMA84DromInwG7Ar+i+MBvdVO57g3tHWTmkog4D/hGRNwDbAeclJmbPxJCkqSGqTUAlFP1frSD9a7juRH/wy2/Bb/xS5K02bzHQpKkPlqzZg0f/OAHWbx4MYcccgjLli3j/e9/P4cddlhP92sAkCSpj77zne/wuc99jttuu42jjz6a//iP/+D4449n2bJlPZ0MyQAgSVIfnXLKKey8884cddRRAOy999488sgjLF68mCOOOKJn+zUASJLUZ7/85S+ZO3cu2267LS95yUsAev4URAOAJEl98vjjj3PYYYdxxBFHcPnll7PHHnuwcuVKPv7xj/d83wYASZL65JZbbmH58uUsWLCg9mcf1P04YEmSVNpzzz1Zt24dy5YtA2D16tV88pOfBGDt2rU8/vjjPdu3AUCSpD6ZPXs2F110Ea985Ss55phjmDdvHscffzz77rsv559/Pr/4xS96tm8vAUiS1Efnnnsu55577vPa7rmn99MdGwAkSVuULXXu/UHjJQBJkhrIACBJUgMZACRJaiADgCRJDWQAkCSpgQwAkiQ1kAFAkqQGMgBIktRABgBJkhrIACBJUp+sWrWKyy67jD333JMVK1bUum+nApYkbVlu/VS/K3i+V31wszddsWIFCxcu5P777+9iQZ3xDIAkSX2y77778r73va8v+zYASJLUR1tvvXVf9msAkCRpAPzgBz/gmGOO4eCDD+a0005jaGiop/szAEiSNADuuusurr/+eu68804mTZrEnDlzyMye7c8AIEnSADj77LOZMmUKEcEnPvEJfvSjH7Fo0aKe7c8AIEnSgHnRi17E9OnTWbp0ac/2YQCQJGkArV69milTpvSsfwOAJEkDZtmyZaxevZrZs2f3bB8GAEmSBsDatWuf/full17K2WefzR577NGz/dU6E2BEBHA6cDJwH7A7sBT4VGau3dS2LX28BfhLYF3boldl5v90r1pJknrvZS97Ge95z3s4/fTTOfzww5kwYQL7778/Z511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\n", "text/plain": [ "<Figure size 576x360 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df[['a', 'b']].plot.hist(alpha=0.5)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f50d87ff650>,\n", " <matplotlib.axes._subplots.AxesSubplot object at 0x7f50d87b4850>]],\n", " dtype=object)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x288 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df[['a', 'b']].plot.hist(subplots=True, layout=(1,2), figsize=(10, 4))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7f50d8707290>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAFdCAYAAAAe8iSvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de7hcZX328e9NAuGUaCBRjiEo+AJqQQkorVWhilSrIK290IoHVF5RC1h9q1hFqraFipV6qkVQFLRqpSIHUagtirXSRkWFekAxoFWUECABQwjh9/6x1sZh2CGzk0lm77W/n+va12TW4ZkfzN5zz/OsZ62VqkKSJHXHZqMuQJIkDZfhLklSxxjukiR1jOEuSVLHGO6SJHXMzFEXMCzz5s2rhQsXjroMSZI2mW984xtLq2p+//LOhPvChQtZvHjxqMuQJGmTSXLDeMsdlpckqWMMd0mSOsZwlySpYwx3SZI6xnCXJKljDHdJkjpmoHBP44gkH0hyXZIn9q1fmOSOJDf1/Rwz0YKSHJDk3CSnJ/likkdPtA1JkqazQc9zD7Aa2BbYYy3bnF5Vp2xIMUkeBnwCeEJVLUvyh8ClSfapqjs2pO0xq1atYtmyZaxYsYI1a9YMo8lOmDFjBrNnz2a77bZj1qxZoy5HkrQBBgr3qroXuCTJ94CjN2I9fwpcXlXL2ucXAP8AHA58fEMbX7VqFTfeeCNz585l4cKFbL755iTZ0GanvKpi9erVLF++nBtvvJEFCxYY8JI0hU30mPu9G6UKmqF/4CjgirFlVbUGuAR43jBeY9myZcydO5d58+axxRZbGOytJGyxxRbMmzePuXPnsmzZsnXvJEmatCbThLrtaYb8f9i3/AfA3sN4gRUrVjBnzpxhNNVZc+bMYcWKFaMuQ5K0AYZ5bfldk5wEPBTYETgfuLCqasD9d2of+7uNv2zbe4AkxwLHAixYsGCdL7BmzRo233zzAcuZnjbffHPnIkjaaBa+8ZJRl7BRLTn1WaMuARheuC+jGU7/p6q6J8kjgK8CewGnDdjGWJe6P1nuYi0jDFV1JnAmwKJFiwb6EuFQ/IPz/48kTX1DGZavquVVdW5V3dM+vx44GXhrkm0GbOa29nGrvuVzgJ8No05JkqaDoYR7xu/uLaYJ6j0HbOY6YBUPHILfHbhm/auTJGl62eBh+SSbA99PckFVva5n1dgw+2192z8KeDPwiar6wtjyqlqV5GJgf+DKnl2eBPzVhta5LpPtONCGHLdZsWIFZ511FmeccQZXXXUVO+ywwxArkyRNdhPtuY8F9uyeZfcAS4G9k8yE+3ryrwEuraolfW2cQHOu/OnjtH8K8JIks9t2HktzDP6yCdY5rd10001cfvnl3HjjjaMuRZI0AoNefnZGkjOAz7aLzknyviTbt7Phnwb8J/CZJH9Lc8GZnwB/PE5zXwBW0Jy/fj9VdQ3w58BHk5xKMxP+ue357hrQnnvuyete97p1byhJ6qRBr1C3Bjix/Rlv/Qrg7QO2dRG/GQEYb/1l2FPfYDNmzBh1CZKkEZlMF7HRRvClL32JQw45hH333ZfnP//5Xn1OkqYBw73jrr32Wi6++GKuvvpqttxySw4//HAGv66QJGkqMtw77vjjj2frrbcmCW9/+9v56le/yuLFi0ddliRpIzLcp5FddtmFefPmcd111426FEnSRmS4TzMrV65k6623HnUZkqSNyHCfRpYsWcLKlSs54IADRl2KJGkjMtw7btWqVff9+13vehfHH388O++88wgrkiRtbMO85asmkf32248TTzyRF7zgBRx00EHMnDmTvfbai+OOO27UpUmSNjLDvaMe+tCH8u53v3vUZUiSRsBwb23IjVokSZpMPOYuSVLHGO6SJHWM4S5JUsdMu3D3uuoPzv8/kjT1TatwnzFjBqtXrx51GZPa6tWrvV2sJE1x0yrcZ8+ezfLly0ddxqS2fPlyZs+ePeoyJEkbYFqF+3bbbcett97K0qVLufvuux2CblUVd999N0uXLuXWW29lu+22G3VJkqQNMK3Oc581axYLFixg2bJlLFmyhDVr1oy6pEljxowZzJ49mwULFjBr1qxRlyNJ2gDTKtyhCfgdd9yRHXfccdSlSJK0UUyrYXlJkqYDw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqmIHCPY0jknwgyXVJnjjONocl+Zckpyc5O8l7kjxkIsUkeWqS25Pc1Pfz9Im0I0nSdDbojWMCrAa2BfZ4wMrkecCbgSdV1YokAT4EfC7JwTWxe6ueUFXnTGB7SZLUY6Cee1XdW1WXAKesZZM3A7dX1Yp2+wJOA54CPGEIdUqSpAFN9Jj7vWtZvgzYoW/Zr9rH7Sb4GpIkaQMM637uhwKb9y17PvAL4MohvYYkSRrAUMK9qlbTHJMHIMlBwNuA544N1U/A3kneAjwUmAecVVXjfkFIcixwLMCCBQvWp3RJkjpnWD33+yR5LvAO4LCq+uYEd/8J8B/ARVVVSfYHvpzk5VX1yf6Nq+pM4EyARYsWTWTSniRJnTXUcE9yPPAM4HeratlE96+qG4Abep5/I8kZwKlJPjXBWfeSJE1LQ7uITZLXAPsCh69PsLdtZJzFi4HdgAmdMy9J0nQ1lHBP8njgWcCxVXVPz/J5Seb2bfvw9iI3L+xfDtzU9v57zaE5nr9yGLVKktR1Ew33Oe3j7L7lbwLeVFVrxhYk2R34J+Duvm1fBBwDfLBv+XKaAN9nrAefZHPgOJpJdasmWKskSdPSoJefndEe+/5su+icJO9Lsn37fH/gk0m+3/7cAPwYuK2q7uxr7t+BpcBFvQuraiVwIHAn8OkkpwGfBD4HnLAe/22SJE1LA02oa3vkJ7Y/463ffdAXrKrFwPy1rPsV8LpB25IkSQ/kXeEkSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOGSjc0zgiyQeSXJfkieNsMz/JR5OcluTSJH+4PgUl2SPJeW07X0zy5PVpR5Kk6WrmgNsFWA1sC+zxgJXJZsD5wMlVdUWSXYFrk1xfVd8atJgkWwEXAodX1XVJFgFfSvLoqvrZoO1IkjSdDdRzr6p7q+oS4JS1bHIwMA/4crv9T4HLgVdNsJ4XAEuq6rq2ncXAj4AXT7AdSZKmrYkec793LcuPAq6oqupZdiFwZJIZE2j/KOCKvmUXAs+bQBuSJE1rw5pQdxDww75lPwC2Ax42SANJ8iDt7NWulyRJ6zCscN8JWNa37Jft444DtjEb2GYt7cwC5q53dZIkTSPDCvc5wJq+ZXdN8DXmtI8Dt5Pk2CSLkyy++eabB3wZSZK6bVjhfhuwVd+ysbAedJb77e3jeO2sAm7p36GqzqyqRVW1aP78+YPWKklSpw0r3L/LA4ffdwduBn41SANVtQJYspZ2rumbrCdJktZiWOF+PrB/37InAR+pqvvNsE/y8CRnJ3nhBNo5e0h1SpLUeRMN97Gh9tl9y88GHpnksQBJtgZ+H/j7cdp4EXAM8MFx1p0OHJpk57adHYC9gY9NsE5Jkqatga5Q156r/i7g2e2ic5J8FnhrVd1SVSuTHA6cmuRnwNbAMVX183Ga+3dgKfCv/Suq6qa2R//eJD+i+TJxZFXdOeH/MkmSpqmBwr2q1gAntj9r2+Z64I8HaGsxsNbZb1X1TeDIQeqSJEkP5F3hJEnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4Z6PKzkjRZLHzjJaMuYaNacuqzRl2COsCeuyRJHWO4S5LUMYa7JEkdY7hLktQxhrskSR1juEuS1DGGuyRJHWO4S5LUMYa7JEkdY7hLktQxhrskSR1juEuS1DGGuyRJHWO4S5LUMYa7JEkdY7hLktQxM0ddgDQKC994yahL2KiWnPqsUZcgaYTsuUuS1DGGuyRJHTO0cE/ye0mq52d5ktuS3Jlk3oBtvCTJsiQ39f3sPaw6JUnqumEec38a8GXgJOAbVXV3kn2Bp1TV0gm0c2RVXTHEuiRJmlaGGe6PBY6oqtsAkmwBnAi8fIivIUmS1mEow/JJZgH/PBbsrdcDH6qqNcN4DUmSNJihhHtVraqqj449T7IrsF9VfW0Y7UuSpMFtrPPc/xL40Hrue2CSpwDbA1sD76mq7wytMkmSOm7o4Z5kJ+A5wLHrsfvVwEOq6sttW88ErkpyaFVdOc5rHTv2OgsWLFj/oiVJ6pCNcZ774cA1VXXPRHesqqvHgr19/nngfOAda9n+zKpaVFWL5s+fv94FS5LUJRsj3J8N/Hh9dkyScRYvBvbdoIokSZpGNka47wXcsraVSR6V5GNJDutbvi+wLMkRfbvMAW5DkiQNZGOE+87AygdZfwJwNHB63/KlQAH3XY0uyWzgJcAHhluiJEndtTHC/cfAdx9k/ReAFcD9bstVVf8LPB54RJJzk5wGfBw4FXjnRqhTkqROGvps+araZx3rL6IZah9v3RLgFcOuSZKk6cS7wkmS1DEb6yI2nbfwjZese6MpbMmpzxp1CZKk9WTPXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeqYoYV7kqcmuT3JTX0/T59gO4clOSfJGUkuSrLLsGqUJGk6mDnk9k6oqnPWd+ck+wDvBBZV1aokrwMuSHJgVd07rCIlSeqyyTYsfxJwblWtap9/BNgPOGh0JUmSNLVMmnBPshVwBHDF2LKqWgZcCTxvRGVJkjTlTJpwBx4NbAv8sG/5D4C9N305kiRNTcM+5r53krcADwXmAWdV1ZUD7rsTUMDtfct/Cfz28EqUJKnbhhnuPwH+A7ioqirJ/sCXk7y8qj45wP5zgDVVVX3L72ItIwxJjgWOBViwYMH6Vy5JUocMbVi+qm6oqgvHwrmqvgGcAZyaJAM0cRswM0n/F445wM/W8ppnVtWiqlo0f/78DSlfkqTOGOZ57uMF+GJgN+AhAzTx3fZxx77luwPXbEBpkiRNK0MJ9yQPB25KcnzfqjnAamBlz7ZPSHJekgN6N6yqG4BvAPv3bLsZ8DvAh4dRpyRJ08Gweu7LaQJ8n7EefJLNgeNoJtWt6tn2ZOBPgLeO085JwAntvgDPBL5SVf8zpDolSeq8oUyoq6qVSQ4E3gB8Osn1wB7A54B39W1+EfAU4AvjtHN5kocBn0jyY5ovHy8bRo2SJE0XQ5stX1W/Al43wHYfBD74IOs/Dnx8WHVJkjTdTKaL2EiSpCEw3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeoYw12SpI4x3CVJ6hjDXZKkjjHcJUnqGMNdkqSOMdwlSeqYmcNqKEmAFwBHAtcDOwHXAX9TVasGbOMlwN8Bd/etOriqvjesWiVJ6rKhhTvwZ8AzgGdV1eokM4DPA2cCL55AO0dW1RVDrEuSpGllKMPyba/9LcBNVbUaoKrWAKcDL0qy4zBeR5Ikrdswj7kvA3boW/ar9nHuEF9HkiQ9iKEMy1dVJdkHqL5Vzwe+DfxgGK8jSZLWbWjH3Kvqrt7nSZ4LHA0c0g7RD+rAJE8Btge2Bt5TVd8ZVp2SJHXdMCfU3SfJq4GXAr9bVddPYNergYdU1Zfbdp4JXJXk0Kq6cpzXORY4FmDBggUbXrgkSR0w1PPc03gncAATD3aq6uqxYG+ffx44H3jHWrY/s6oWVdWi+fPnb0jpkiR1xrAvYvNO4E7gpVW1cqI7t7Pu+y0G9t3QwiRJmi6GFu5JngPMrapTqqp6lu+WZFbP80cl+ViSw/r23xdYluSIvqbnALcNq05JkrpumD33NwFv7F3QBvYHuf8V506gmWh3et/+S2lm2+/ds/9s4CXAB4ZYpyRJnTaUCXVJZtIMnV/ZM7I+m+YStKf39uSBL9CE+yW9bVTV/yZ5PPAXSc4Ffk4T9KcCHxpGnZIkTQfDOs/9HmCrAbe9iGaofbx1S4BXDKMmSZKmK+8KJ0lSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdYzhLklSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdYzhLklSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdYzhLklSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdYzhLklSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdcxQwz3JHknOS3Jaki8mefJ6tHFAknOTnN628ehh1ihJUtfNHFZDSbYCLgQOr6rrkiwCvpTk0VX1swHbeBjwCeAJVbUsyR8ClybZp6ruGFatkiR12TB77i8AllTVdQBVtRj4EfDiCbTxp8DlVbWsfX4BsCVw+BDrlCSp04YZ7kcBV/QtuxB43iA7J0l/G1W1Brhk0DYkSdKQwr0N5oOAH/at+gGwV7t+XbYH9lhLG3tvcJGSJE0Tw+q5zwa2AZb1Lf8lMAuYO0AbO7WP47Wx4wZVJ0nSNDKsCXVz2sc1fcvvah8H+RLxYG2Mu3+SY4Fj26d3JPnBAK8zVc0Dlm6qF8tpm+qVpg3fv6nL925q6/r7t9t4C4cV7re3j1v1LZ8DrAJuGaCN2x6kjXFn21fVmcCZA9Y4pSVZXFWLRl2H1o/v39Tleze1Tdf3byjD8lW1AljCA4fPdweuqaoaoJnraL4IjNvGhtYoSdJ0MczZ8ucD+/ctexJwdu+CJI9K8rEkh/Uur6pVwMWDtCFJktZumOF+OnBokp0BkuxAM8v9Y33bnQAc3W7f7xTgJUlmt208luYY/GVDrHOqmhaHHzrM92/q8r2b2qbl+5fBRswHbCx5PPBmmovXzAH+pqpu6Nvm2cDHgX+oqjeM08ahwCtpTonbBnhrz0VtJEnSOgw13CVJ0uh5VzhJkjrGcJckqWMMd0mSOsZwlySpYwx3SZI6xnCfpAa8k54kSQ9guE9SY5fsTbJLkoWjrUaaPpLMTDKz/bdfsjUlGe6TWJL/C1wIHJtkm1HXo4kbC4ckD0lyQP9yTS5JZgEvBL6SZNGA98WQJh3DfZJJsm2SLdsP//2AdwHvbNf5fk0xPeFwNPDc9rLMvSMz0+5uVZNZe4+LnWg+G09IspNfxKa29gvb2L83S/LYJG9I0n+Tsk4xLCaRJHsBXwE+BCwATqiqjwMPBd4NbJ7koT3b+6EzBSTZGlgI/Jr2vtJJdk3yIeCvRliaWm2IL0pyMPAQ4DjgXuCAni9i/r1NMUmeB/zn2I3Kqupe4GTgTcChPdvNGE2FG4/hPrnMAj4B/DbwF8CjkmwJPA/4FbAlcHaSj8P9en9bJdk3yeajKVvj6Rlp2QY4GLi0qu5plz0ROAJ4Xd+22sTa0D4E+C/gg8BHqupbwF3Am8cOiTlEPyV9H7gFeA1A++Xtl8AxwFuSvB+gqtb07zjVv8z5gTK5fKeqTgceR/ML+ErgxcBewDVVdTtwHrBHkrnQ/AJW1UrgUcBrkuw5mtLVr+0lAJxE88Xsxz2r/xJ4b1Vdk2SzsW17JnLNT3JQkkdu0qKnoWqcB7ya5j36VXv45NfAucBRSV7dftG+T898is2TbLep69a6VdV3aUbH5iR5DPAHwFlVdT7wdOCQJJ8aGxFtR29+r913Sn+ZM9wniTakx36ZjqS5h/37gND05F+V5MnAL4D57bLeX8D5wBuAc5Lsvilr19oleSrwJOARwGXtxLrnAz+vqrf1bBeAqrqn/eL298DLaY7/aiNrh2XPBH4CHFFVN1XVa4FraXrzLwMe2W47E5q/vfZ47geB3xtJ4RpX70hYVV0BfB44EfhRVV2dZLuq+gnwRzR/m09pN18FvCHJBUm22sRlD5XhPkn0DLEvpOmx711V3wd2Bd4LvJ5maOl3gG2BP0vyviTvTfLfwFuBhwFXtb+0GrH2w+Fg4KM0H/63ADfSTK57+dh2ba992yQLk5xKM+/iKOC6qrpykxc+jSTZM8mf0oyuzADeDzy2XRdgEc2X7f8EPplkh7FDK0kOBz4HPKaq/nkU9ev+eobSN2tHVB6Z5NHAt4HfAla1h1kuSPJWYDXNnKZXJdkCuA64E3gaMKUPc84cdQG6v6pakmQN8IEkZwA/Bz5VVUuTHF1Vq9pfwucA36X5xfwk8D3ghqq6dmTFq98M4CPA0qq6A/j9JOfQjLock+QnwMNphgq3A+YC84D/Ac5qf/pHdTQkbW/99cCewJU0H+Y/AuYl2RlYSdOTv7yqLkry18CCduLrYcCfA2toQkOTQM/fybuBPYDFwO1VdXqSxwGfBg4Crge2p5n38tfAz6rqboAkVwO7A7OB5Zv2v2B4vJ/7JNJ+2GwBHE9zvO/VNN8kn0MztDurqv41yQuAravqrJEVqwlphwm3oJmFfQCwP3Aqzez5mcASmkMwPwduB+5qh33vOx6v4UuyfVXd0rdsP5r34w6aEZdtaA57HQ3sTTMf5g7gW8D5VXXZpqxZD649VPJemvfu92k+N7+b5EDgh8AraA63HAF8rarO6dv/v4DvVdWLN2nhQ2bPfRJpZ2yuTHJrVZ2ZZG+aY0KX0nzgv6LddBUwp3dfe3eTV5IZVbWmPeRyMPAWmvdyt6r6yFq2L7jfpDwNWfs3c0vP80cCtwLXAJu18x8eRtOzX0wzknIS8Czgl1X16xGUrXVor1VwbJLXAp8Bzm2/sD2BZsTlizRnQtwBfK133ySvopnAPOXnUHjMfZJph9zPS/JbwP8BdqQ57/2pND14aI7bfqZ3P4N98uo5zebDNHMivg28DVjUBv79TrsZ77QcDV/PPJftkxwHfJkmuAEOTfJEmkNiJ1fVhTTBf0U7p2XVSIrWOvWcs34ucAPw78Ay4HKaYfldaA5/rQAem2THJA9L8nTgDOBVVbVi01c+XIb7JFNVd7c9gifTfLCsoTnH/W7guCQXAte3x+B9/6aIJLsAF1fV2EVrbm4fDwe/nI3YHTS99TcCn2snzF1P82X6np7tbga+0x4q8QvYJDX23lTVUpowfxzN+e4/BT5Fcz2DJTQz6B9B84Xu68AJwN+0p0VOeR5zn6Ta40YzaIaP3kIz4ePsdmb8zsAfVdXXHqwNTS49w/NbVNXd7dyJXarqbz2sMrmkuargJ4B/q6r3tMtOAr5ZVV8caXFap56RsF1oJrXeQ9NTP5vmc/VQmknI+wH/SDOv4vvtF4JO8Jj7JNR+0K8am0yVZH9+c4x9Cc0MzvkjK1DrpadHcXe7aAeaDxp77pNMVf06yYeBv0hyWXta6her6pujrk3r1vP39NMkS2hGqa+nmUQ3CzgNeCbw6fZqhJ1juE9CvZOp2nM0/wB4dprLy74Z+ElPQGgSa69cNhNYXlV3tcvGeuk/ojmV0QmRk0zb87uW5pSoNwEvMtinlp4zTS6iOSvlf2kmtP4WzRfr3arq7/q27QyP2U5+99B82/xSVa2uqh8Y7JNL79yHnsk8pLnF65/TXJDmvgtitKe4BdiXJuDtuU8y1fgx8DHgd5I8Y9Q16YH6/t62733eE9a30pz9sAS4gGbi5DOBA5LM62Kwg8fcpfWSZCfglva0m/51C2lGW95Cc3GUU6tqcd82mwE7VdXPNn61Wl/t+7RZ/eaGP5oEkmwPLOs54+F3ab4sXzLeFTqTzKmq5e2/t6T52zyJpvf+001X+abjsLw0QWluznMh8Jkkn6HplT+O5lLBT6a5SM1WNBfM+HB/sMN9vQqDfZJr36fO9eqmsvbw5F8CeyZ5aVX9HNiN5lLB5/Vtm3YU5r4rzVXVXUneRnNRqV1pZtF3juEuTdwMmmtV/7/236tp7gH+E+CzNLNvb6aZwHMjeExdGqJtaU5texJwIM1Q+2uBM6vqtt6/tZ6e/WNo7hHwrqq6s52w/IYuDsePMdylCaqq77fXGd+H5hTFD8BvLjHbM3Fu+7HhXINdGo6qujXJB2lC/tVJdqP5O/zHdpNd6OuNV3Nr5RcD/5PkhVV1ZZeDHZxQJ62XqvoOzbXhX9jefWoucBXwrSTbJflj4Ir2zlP3m3Qnaf21PfN7qupUmlODnwqMzXo/BfhEkkeNneve87f3aZph+KMzxW/nOgg/cKQJSmMz4Aqa2+w+k+Z+0NfS3DP6dppb8C6jvWNY13sJ0qbSnm0yNiv+qzQ3W7qqnQvzfJoRtRk9o2VjjzfSXMjmmqpauSlrHgXDXZqgdoLOve1Enk8Bj6uqC6rqJe3Vy/4AeB/NKYyPb29GYe9dGpKey/9+iWZi6iqauS/vBP4NeDrcd72Csb+7P6E5tficTVnrqPhhI62HnstbXgUc1vbmx3oT2wI3VdWtNKfcHNLVc2mlUUiya/ul+Wk0d3mbS3OsfSvgozT3bAeY2V7yeXeaW2m/j6b33nmGu7Qeeob8/oumN7BT+yHyEOBVwC/a9ZcBjwdO3vRVSp21H3A0zZkps6tqGfDfwFlVdTFwT5I9qmp1u/3fA99s10+Lya3Olpc2zC00x9bHrkD3D8C9VfX1trf+qyTnAU9OMtOLoUjrr+c0t21oznXfGXh9krlVdUHP6Nn3gfcneT/NcfgFwNFdvWDNeOy5Sxug7RncBuzd3knsWuCYvs3eCXyF5oYVktZTO5luV5pLOn+/qs6muchrGc0AAAKjSURBVG78nu36sZsz/RXwY+Bt7a7PqarvjqDkkfHys9J66rmF62uAL1fVd/t75x5rl4YryZOBl9NcCfLdwP7AyVX1y3YuTMb+5trDZHdOxxEzh+Wl9dQzY3c5zXF3gDV92xjs0hBV1VeAryQ5hCbk7wJ2SXJbe6+HGvtSXVW3j7TYEbLnLm2gsR78qOuQppv2GPuTgavbs1PUMtwlSeoYJ9RJktQxhrskSR1juEuS1DGGuyRJHWO4S5LUMYa7JEkdY7hLktQxhrskAJLMSvLUrryONJ0Z7pLGHAU8tUOvI01bhrs0jaWxS5L/R3Nv7Cn9OpIa3jhGmt52AF7Z/vuXwCFJxj4Xvl5VF7d32joOeAZwHfBI4J+q6tMASRYBbwcOAy6tqme2y6+kuc3tK4FfrOt1NuJ/ozTteG15SQAkuQK4oqpO6Vt+FHAysH9VrUwyG7gBOKSqru7Z7h3AS4F9aEYF3wa8tv92m2t7HUnDY89d0rqcDLy/qlYCVNWKJN8GXgxc3bPd24DnAO8EVtHcY3va3UdbmgwMd0lrlWQbYG/g4CR79qxaxQPvXX93kpcBXweO8Rac0ugY7pIezBbt49lVdekA298K/BB4S5J/rqpfb7zSJK2Ns+Ul9cp9/0ieSdNDvxH47QdsmDy7nWw39nxrmiH8JwFFM0w/0Ou0+0oaEsNd0pibgAUASR4BHNn2vN8MHJ/kd9p1myV5BbB1tTNyk2xGc6z97VV1C/By4MQkB07gdSQNibPlJQGQ5DHAp4BlwM+B11TVze26VwCvB+6hmSl/VlX9S7vuUOAUYB7NjPoVSV4MvAdYDrysqi4b5HUkDYfhLklSxzgsL0lSxxjukiR1jOEuSVLHGO6SJHWM4S5JUscY7pIkdYzhLklSx/x/+xRgYPUhaWAAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 576x360 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df.plot.bar(x='text', y='b', rot=55) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Miscellaneous" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>a</th>\n", " <td>1.000000</td>\n", " <td>0.363270</td>\n", " <td>0.323531</td>\n", " </tr>\n", " <tr>\n", " <th>b</th>\n", " <td>0.363270</td>\n", " <td>1.000000</td>\n", " <td>0.998765</td>\n", " </tr>\n", " <tr>\n", " <th>c</th>\n", " <td>0.323531</td>\n", " <td>0.998765</td>\n", " <td>1.000000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c\n", "a 1.000000 0.363270 0.323531\n", "b 0.363270 1.000000 0.998765\n", "c 0.323531 0.998765 1.000000" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.corr()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>a</th>\n", " <th>b</th>\n", " <th>c</th>\n", " <th>text</th>\n", " <th>new_text</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>我</td>\n", " <td>今天星期日</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>4</td>\n", " <td>8</td>\n", " <td>11</td>\n", " <td>今天</td>\n", " <td>今天星期一</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>6</td>\n", " <td>9</td>\n", " <td>12</td>\n", " <td>沒</td>\n", " <td>今天星期二</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>20</td>\n", " <td>吃飽</td>\n", " <td>今天星期三</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " a b c text new_text\n", "0 4 7 10 我 今天星期日\n", "1 4 8 11 今天 今天星期一\n", "2 6 9 12 沒 今天星期二\n", "3 5 15 20 吃飽 今天星期三" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.select_dtypes(exclude=['float64'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.select_dtypes(include=['float64']).to_numpy()" ] } ], "metadata": { "kernelspec": { "display_name": "py3.7", "language": "python", "name": "py3.7" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }