{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ネ申エクセルについて\n",
    "Excelで印刷物での見栄えを優先させて作成された表がしばしば見受けられます。\n",
    "これらのExcelワークブックは、ネ申エクセル(神エクセル）と呼ばれたりします。\n",
    "神エクセルは印刷物を作成すること（だけ）を念頭に置かれて作成されるため、\n",
    "そこに含まれたデータを再利用する際に、余分な手間が必要となり、データの効率的な利用の障害となっています。\n",
    "\n",
    "科研費申請書で有名になった方眼紙エクセルは極端な例ですが、\n",
    "セルの結合を多用しているため、標準的な手法ではその中のデータを簡単にはプログラムに取り込めない\n",
    "ということはしばしばあります。\n",
    "\n",
    "一例として、首相官邸ホームページに掲載されている都道府県別のコロナワクチン接種状況のデータを見て見ましょう。\n",
    "\n",
    "- 都道府県別の実績　https://www.kantei.go.jp/jp/content/kenbetsu-vaccination_data2.xlsx\n",
    "\n",
    "この表には、都道府県別に、一般接種および医療対象者の二つの接種対象毎に表が作成されています。\n",
    "また、ワクチンの種別毎に1回目としての接種回数と2回目としての接種回数がデータにふくまれています。\n",
    "一般接種と医療対象者等のデータはそれぞれ別ワークシートに収められており、\n",
    "テーブルの形式もそれぞれで若干の違いがあります。　\n",
    "それらのテーブルでは、各列の項目名の行はセルの結合を組み合わせて作られており、\n",
    "データを取り出す為には、worksheet毎にデータの処理を行う必要があります。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas\n",
    "from urllib.request import urlopen\n",
    "import openpyxl\n",
    "from io import StringIO,BytesIO\n",
    "wb=openpyxl.load_workbook(\n",
    "        BytesIO(\n",
    "            urlopen(\"https://www.kantei.go.jp/jp/content/kenbetsu-vaccination_data2.xlsx\").read()\n",
    "        ))\n",
    "df0=pandas.read_excel(\n",
    "    urlopen(\"https://www.kantei.go.jp/jp/content/kenbetsu-vaccination_data2.xlsx\").read(),\n",
    "    header=2,sheet_name=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(Index(['都道府県名', '接種回数', '内１回目', '内２回目', 'Unnamed: 4'], dtype='object'),\n",
       " 0                                                    合計\n",
       " 1                                                01 北海道\n",
       " 2                                                02 青森県\n",
       " 3                                                03 岩手県\n",
       " 4                                                04 宮城県\n",
       " 5                                                05 秋田県\n",
       " 6                                                06 山形県\n",
       " 7                                                07 福島県\n",
       " 8                                                08 茨城県\n",
       " 9                                                09 栃木県\n",
       " 10                                               10 群馬県\n",
       " 11                                               11 埼玉県\n",
       " 12                                               12 千葉県\n",
       " 13                                               13 東京都\n",
       " 14                                              14 神奈川県\n",
       " 15                                               15 新潟県\n",
       " 16                                               16 富山県\n",
       " 17                                               17 石川県\n",
       " 18                                               18 福井県\n",
       " 19                                               19 山梨県\n",
       " 20                                               20 長野県\n",
       " 21                                               21 岐阜県\n",
       " 22                                               22 静岡県\n",
       " 23                                               23 愛知県\n",
       " 24                                               24 三重県\n",
       " 25                                               25 滋賀県\n",
       " 26                                               26 京都府\n",
       " 27                                               27 大阪府\n",
       " 28                                               28 兵庫県\n",
       " 29                                               29 奈良県\n",
       " 30                                              30 和歌山県\n",
       " 31                                               31 鳥取県\n",
       " 32                                               32 島根県\n",
       " 33                                               33 岡山県\n",
       " 34                                               34 広島県\n",
       " 35                                               35 山口県\n",
       " 36                                               36 徳島県\n",
       " 37                                               37 香川県\n",
       " 38                                               38 愛媛県\n",
       " 39                                               39 高知県\n",
       " 40                                               40 福岡県\n",
       " 41                                               41 佐賀県\n",
       " 42                                               42 長崎県\n",
       " 43                                               43 熊本県\n",
       " 44                                               44 大分県\n",
       " 45                                               45 宮崎県\n",
       " 46                                              46 鹿児島県\n",
       " 47                                               47 沖縄県\n",
       " 48                                                  NaN\n",
       " 49                        注：接種回数は一般接種（高齢者含む）と医療従事者等の合計。\n",
       " 50                注：一般接種（高齢者含む）はワクチン接種記録システム(VRS)への報告と、\n",
       " 51       　　医療従事者等はワクチン接種円滑化システム（V-SYS）への報告を、公表日で集計したもの。\n",
       " 52    注：公表日におけるデータの計上方法等の注釈については、以下を参照（https://www.k...\n",
       " Name: 都道府県名, dtype: object)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df0.columns, df0[\"都道府県名\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "このように、データ以外の情報　（ここでは\"注”）もテーブル中にあり、プログラムでのデータ処理の例外扱いを増やしています。（注などは、テキストボックスや、フッターにいれることを検討して欲しいところです。ただ、フッターに入れることのできる文の長さには制限がある。~~テキストボックスはテーブルの長さが変わったときに位置が追随しないという問題はあります。~~ テキストボックスはプロパティの”セルに合わせて移動”を選択することで、セルの追加などに合わせてテキストボックスの位置が調整されます。）\n",
    "\n",
    "Excelの「データの分析機能」でも注などをテーブルの中に埋め込んだ場合、これらも対象のデータとして取り込もうとしているようです。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "openpyxlを用いて、ワークシートを読み込んだ場合、プログラム側でテーブルの構造を意識して、\n",
    "明示的にセル位置を指定する必要があります。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[<Worksheet \"総接種回数\">, <Worksheet \"一般接種\">, <Worksheet \"医療従事者等\">]\n",
      "\n",
      "これまでのワクチン総接種回数（都道府県別）, None, None, None, None, \n",
      "None, None, None, （8月23日公表時点）, None, \n",
      "都道府県名, 接種回数, 内１回目, 内２回目, None, \n",
      "合計, 112171725, 62773195, 49398530, None, \n"
     ]
    }
   ],
   "source": [
    "print(wb.worksheets, end=\"\\n\\n\")\n",
    "for i in range(1,5):\n",
    "    [print(c.value, end=\", \") for c in wb.worksheets[0][f\"{i}\"]]\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "余分なデータがあることで、どんな影響がでるか、データをグラフ化して見て見ましょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='都道府県名'>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6EAAAReCAYAAAAmODZoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAADqVUlEQVR4nOzdd5hkVbWw8XfNkINkCZJFEQRRQEUBBcwJzIoRFRXFfA0o5mvWq9fPrGDArNfMFcWAGUSMiARFkIugIoIoSRjW98faxRRNd9Xp7pozPeP7e55+uruqzq59Tp06Z68dIzORJEmSJKkPi5Z3BiRJkiRJ/z4MQiVJkiRJvTEIlSRJkiT1xiBUkiRJktQbg1BJkiRJUm8MQiVJkiRJvVmuQWhE3CIiPhsRh4553b0i4ukR8eCIeEVErNJXHiVJkiRJk7Ncg9DM/C3wO2CdMS89HHhPZn4eWAO4y7LOmyRJkiRp8hZCd9yrB39EeWFE3D8ijoyIzdtTOwJbt7+vA67qO5OSJEmSpPlbCEHosPsC62TmscBXgde1xw8Hjo+IdwO/zswfLa8MSpIkSZLmbqEFoQcAiyPi3sA2wLnt8V2Aw4AzgedHxLbLJXeSJEmSpHlZaBP8rAL8ITO/1v7/YkRsD9wiM/8bOCEi/gg8HnjVcsqjJEmSJGmOFkJL6GJg9fb3d4B9B09ExB7t+eGJi66gxoVKkiRJklYwkZnL780jbgkcDSwBHg1cALwe+CfV9fZXmXlmRDybmozon8CtgDdl5j+WT64lSZIkSXO1XINQSZIkSdK/l4XQHVeSJEmS9G9iuUxMtPHGG+e22267PN5akiRJkrSM/fSnP/1rZm4y3XPLJQjddtttOeWUU5bHW0uSJEmSlrGI+MNMz9kdV5IkSZLUG4NQSZIkSVJvDEIlSZIkSb1ZLmNCJUmSJGmhuuaaazj//PO56qqrlndWFrw11liDLbfcklVXXbXzNgahkiRJkjTk/PPPZ91112XbbbclIpZ3dhaszOTiiy/m/PPPZ7vttuu8nd1xJUmSJGnIVVddxUYbbWQAOkZEsNFGG826xdggVJIkSZKmMADtZi7HySBUkiRJkhaYf/3rX1x33XXX/5+Z077ud7/7Hccee+z1z19++eV86EMf4stf/jIAS5Ys4cwzz5zxfX71q19dv+3VV1/NP//5T370ox/x5z//mSVLlvD973+fiy66aFK7BTgmVJIkSZJG2vaI/51oeue+4X5jX/ONb3yD3/3udxx++OEsXryYs846i6OPPpo3vvGNnHjiieywww586Utf4vjjj+dFL3oR3/ve9zj//PN5//vfz2te8xq23XZboILXvfbai912223a9/n5z3/OD37wA3bddVfe+c53su+++/L1r3+diy++mCOOOIK3ve1tfPKTn5zk7huESpIkSdJCs2jRItZbbz0++tGP8oEPfIDVVlsNgNvf/vasu+66vPvd72bffffl/PPPZ/HixSxevJhtttmGtdZai4jg/e9/P/vvvz/7778/e++9N8ceeyz/+Mc/WHfddYFq9Vx99dW5//3vz6677srvf/97dtxxR0466STOOeccbnOb23DiiSey0047sfrqq3PCCSew6667svHGG89/3+adgiRJkiRpYk4//XROO+00fvnLX3LVVVfxyle+kte85jV88IMfZJ999uG4447jW9/6Fo95zGN43/vex9ve9jb++c9/ss8++7Dpppte/3u//fYjIq5fPmWPPfZgv/32Y7/99uOOd7wjmXl9V9ztt9+eAw44gKOPPpp1112X5z3vefzrX//iq1/9KnvttRcHH3wwxxxzzET2z5ZQSZIkSVpAdtppJ/7whz+w8cYbc+GFF/La176WX/ziF+yyyy6sueaaPOhBD+LII4/kCU94AieddBIf/vCHecQjHsG2227L3//+d8444wy++c1vcvjhhwNLJw+67W1vy2c+8xkAHvnIRxIR1weh11xzDS984Qt53etex3HHHccrXvEKLrjgAr72ta/x+9//nm984xs873nPm8j+GYRKkiRJ0gLy29/+lu985ztEBE984hM54ogjOOSQQ3jTm97Epptuysknn8wee+zBCSecwLXXXss73/lOzj77bA477DDOOOMMDjvssOu75UJNTjTVIPgc/D733HN5/etfz9FHH82LX/xi/va3v7H66qtz2mmncfrpp7PXXntNbP8MQiVJkiRpAbn44otZb7312HzzzXnjG9/IySefzNVXX80jHvEIfvnLX7Lbbrtxr3vdi7vd7W4sWbKEgw8+mO9+97u86lWv4sgjj+S1r30tr3nNa4AKMgdB6CmnnMJ+++0HLA1MB0HoiSeeyNFHH83vfvc7vvKVr3Daaafx2c9+lnPOOYcTTzyRww47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\n",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib\n",
    "font = {'family' : \"Hiragino Mincho ProN\"}\n",
    "matplotlib.rc('font', **font)\n",
    "df0.plot.bar(x=\"都道府県名\",y='接種回数',figsize=(16,9))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## データの正規化\n",
    "接種データは本来、各接種記録毎に、'接種場所','接種日時', '接種者の分類：一般、高齢者、医療従事者等','ワクチンの種別','ワクチン接種は1回目か2回目か'といった情報が含まれていると想像される。このファイルには、この生な接種情報を接種日時については集約したあとのデータを集積し、さらに’都道府県毎’にデータを集約していったものとみることができます。　このことは、このエクセルファイルの項目名でのセル結合の様子をみることでも裏付けられます。\n",
    "このような視点で、できるだけ生データに近い形で、データを再整理したものが次の\"接種回数DB\"です。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(Index(['接種地域', 'ワクチン供給者', '接種対象', '接種回', '接種済数', 'ワクチン累積供給量'], dtype='object'),\n",
       " FrozenList(['id']))"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=pandas.read_excel(\"kenbetsu-vaccination_data2.xlsx\",\n",
    "                     sheet_name=\"接種回数DB\",\n",
    "                    index_col=0\n",
    "                    )\n",
    "#index_col=(0,1,2,3,4,))\n",
    "#df=df[['接種地域', 'ワクチン供給者', '接種対象', '接種回','接種済数', 'ワクチン累積供給量']]\n",
    "#df=df[['接種済数', 'ワクチン累積供給量']]\n",
    "\n",
    "\n",
    "df.columns, df.index.names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "このように、データを再構成することで、簡単にデータをプログラムから読み込むことができます。\n",
    "また、さまざま集約も標準の機能をつかうことで、簡単に結果をもとめることができます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "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>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ワクチン供給者</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ファイザー社</th>\n",
       "      <td>102015703</td>\n",
       "      <td>124131930.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>武田/モデルナ社</th>\n",
       "      <td>10156022</td>\n",
       "      <td>22232900.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               接種済数    ワクチン累積供給量\n",
       "ワクチン供給者                         \n",
       "ファイザー社    102015703  124131930.0\n",
       "武田/モデルナ社   10156022   22232900.0"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"ワクチン供給者\"]).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id               39903.0\n",
       "接種済数         112171725.0\n",
       "ワクチン累積供給量    146364830.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"ワクチン供給者\"]).sum().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(                   id     接種済数  ワクチン累積供給量\n",
       " 接種地域 接種回  接種対象                           \n",
       " 三重県  内１回目 一般接種     95   785109  1980355.0\n",
       "           医療従事者等  118    89383        0.0\n",
       "      内２回目 一般接種    377   634022        0.0\n",
       "           医療従事者等  259    81345        0.0\n",
       " 京都府  内１回目 一般接種     99  1096642  2957855.0\n",
       " ...               ...      ...        ...\n",
       " 鳥取県  内２回目 医療従事者等  266    31073        0.0\n",
       " 鹿児島県 内１回目 一般接種    139   727002  1861520.0\n",
       "           医療従事者等  140   109133        0.0\n",
       "      内２回目 一般接種    421   586527        0.0\n",
       "           医療従事者等  281    95738        0.0\n",
       " \n",
       " [188 rows x 3 columns],\n",
       " id               39903.0\n",
       " 接種済数         112171725.0\n",
       " ワクチン累積供給量    146364830.0\n",
       " dtype: float64)"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"接種地域\",'接種回','接種対象']).sum().sort_index(),df.groupby([\"接種地域\"]).sum().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "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>id</th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>接種地域</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>三重県</th>\n",
       "      <td>849</td>\n",
       "      <td>1589859</td>\n",
       "      <td>1980355.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>京都府</th>\n",
       "      <td>861</td>\n",
       "      <td>2238427</td>\n",
       "      <td>2957855.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>佐賀県</th>\n",
       "      <td>951</td>\n",
       "      <td>845812</td>\n",
       "      <td>985815.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>兵庫県</th>\n",
       "      <td>873</td>\n",
       "      <td>4957700</td>\n",
       "      <td>6100055.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>北海道</th>\n",
       "      <td>711</td>\n",
       "      <td>4628368</td>\n",
       "      <td>5979910.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>千葉県</th>\n",
       "      <td>777</td>\n",
       "      <td>5200353</td>\n",
       "      <td>6107845.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>和歌山県</th>\n",
       "      <td>885</td>\n",
       "      <td>1021734</td>\n",
       "      <td>1196545.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>埼玉県</th>\n",
       "      <td>771</td>\n",
       "      <td>5768529</td>\n",
       "      <td>6801570.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>大分県</th>\n",
       "      <td>969</td>\n",
       "      <td>1106544</td>\n",
       "      <td>1270095.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>大阪府</th>\n",
       "      <td>867</td>\n",
       "      <td>7458806</td>\n",
       "      <td>10757385.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>奈良県</th>\n",
       "      <td>879</td>\n",
       "      <td>1266858</td>\n",
       "      <td>1577330.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>宮城県</th>\n",
       "      <td>729</td>\n",
       "      <td>2039998</td>\n",
       "      <td>2579595.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>宮崎県</th>\n",
       "      <td>975</td>\n",
       "      <td>993101</td>\n",
       "      <td>1155855.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>富山県</th>\n",
       "      <td>801</td>\n",
       "      <td>952505</td>\n",
       "      <td>1135070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>山口県</th>\n",
       "      <td>915</td>\n",
       "      <td>1545104</td>\n",
       "      <td>1836535.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>山形県</th>\n",
       "      <td>741</td>\n",
       "      <td>1125335</td>\n",
       "      <td>1365055.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>山梨県</th>\n",
       "      <td>819</td>\n",
       "      <td>692941</td>\n",
       "      <td>951420.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>岐阜県</th>\n",
       "      <td>831</td>\n",
       "      <td>1923575</td>\n",
       "      <td>2306565.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>岡山県</th>\n",
       "      <td>903</td>\n",
       "      <td>1869401</td>\n",
       "      <td>2246580.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>岩手県</th>\n",
       "      <td>723</td>\n",
       "      <td>1083575</td>\n",
       "      <td>1353435.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>島根県</th>\n",
       "      <td>897</td>\n",
       "      <td>658635</td>\n",
       "      <td>745740.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>広島県</th>\n",
       "      <td>909</td>\n",
       "      <td>2550235</td>\n",
       "      <td>3218420.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>徳島県</th>\n",
       "      <td>921</td>\n",
       "      <td>732888</td>\n",
       "      <td>917095.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>愛媛県</th>\n",
       "      <td>933</td>\n",
       "      <td>1250690</td>\n",
       "      <td>1556050.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>愛知県</th>\n",
       "      <td>843</td>\n",
       "      <td>6200562</td>\n",
       "      <td>8725620.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>新潟県</th>\n",
       "      <td>795</td>\n",
       "      <td>2146330</td>\n",
       "      <td>2686645.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>東京都</th>\n",
       "      <td>783</td>\n",
       "      <td>12134011</td>\n",
       "      <td>20893610.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>栃木県</th>\n",
       "      <td>759</td>\n",
       "      <td>1502088</td>\n",
       "      <td>1966330.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>沖縄県</th>\n",
       "      <td>987</td>\n",
       "      <td>1119842</td>\n",
       "      <td>1406405.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>滋賀県</th>\n",
       "      <td>855</td>\n",
       "      <td>1230505</td>\n",
       "      <td>1575270.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>熊本県</th>\n",
       "      <td>963</td>\n",
       "      <td>1878851</td>\n",
       "      <td>2204255.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>石川県</th>\n",
       "      <td>807</td>\n",
       "      <td>1108983</td>\n",
       "      <td>1349610.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>神奈川県</th>\n",
       "      <td>789</td>\n",
       "      <td>7424780</td>\n",
       "      <td>9002475.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>福井県</th>\n",
       "      <td>813</td>\n",
       "      <td>773434</td>\n",
       "      <td>939520.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>福岡県</th>\n",
       "      <td>945</td>\n",
       "      <td>4647952</td>\n",
       "      <td>5684120.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>福島県</th>\n",
       "      <td>747</td>\n",
       "      <td>1786718</td>\n",
       "      <td>2106990.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>秋田県</th>\n",
       "      <td>735</td>\n",
       "      <td>980253</td>\n",
       "      <td>1106205.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>群馬県</th>\n",
       "      <td>765</td>\n",
       "      <td>2008977</td>\n",
       "      <td>2599545.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>茨城県</th>\n",
       "      <td>753</td>\n",
       "      <td>2569535</td>\n",
       "      <td>3273575.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>長崎県</th>\n",
       "      <td>957</td>\n",
       "      <td>1396867</td>\n",
       "      <td>1654190.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>長野県</th>\n",
       "      <td>825</td>\n",
       "      <td>1867238</td>\n",
       "      <td>2292470.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>青森県</th>\n",
       "      <td>717</td>\n",
       "      <td>1198827</td>\n",
       "      <td>1428815.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>静岡県</th>\n",
       "      <td>837</td>\n",
       "      <td>3060754</td>\n",
       "      <td>3901980.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>香川県</th>\n",
       "      <td>927</td>\n",
       "      <td>841707</td>\n",
       "      <td>1097190.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>高知県</th>\n",
       "      <td>939</td>\n",
       "      <td>719429</td>\n",
       "      <td>874865.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>鳥取県</th>\n",
       "      <td>891</td>\n",
       "      <td>554709</td>\n",
       "      <td>651450.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>鹿児島県</th>\n",
       "      <td>981</td>\n",
       "      <td>1518400</td>\n",
       "      <td>1861520.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id      接種済数   ワクチン累積供給量\n",
       "接種地域                           \n",
       "三重県   849   1589859   1980355.0\n",
       "京都府   861   2238427   2957855.0\n",
       "佐賀県   951    845812    985815.0\n",
       "兵庫県   873   4957700   6100055.0\n",
       "北海道   711   4628368   5979910.0\n",
       "千葉県   777   5200353   6107845.0\n",
       "和歌山県  885   1021734   1196545.0\n",
       "埼玉県   771   5768529   6801570.0\n",
       "大分県   969   1106544   1270095.0\n",
       "大阪府   867   7458806  10757385.0\n",
       "奈良県   879   1266858   1577330.0\n",
       "宮城県   729   2039998   2579595.0\n",
       "宮崎県   975    993101   1155855.0\n",
       "富山県   801    952505   1135070.0\n",
       "山口県   915   1545104   1836535.0\n",
       "山形県   741   1125335   1365055.0\n",
       "山梨県   819    692941    951420.0\n",
       "岐阜県   831   1923575   2306565.0\n",
       "岡山県   903   1869401   2246580.0\n",
       "岩手県   723   1083575   1353435.0\n",
       "島根県   897    658635    745740.0\n",
       "広島県   909   2550235   3218420.0\n",
       "徳島県   921    732888    917095.0\n",
       "愛媛県   933   1250690   1556050.0\n",
       "愛知県   843   6200562   8725620.0\n",
       "新潟県   795   2146330   2686645.0\n",
       "東京都   783  12134011  20893610.0\n",
       "栃木県   759   1502088   1966330.0\n",
       "沖縄県   987   1119842   1406405.0\n",
       "滋賀県   855   1230505   1575270.0\n",
       "熊本県   963   1878851   2204255.0\n",
       "石川県   807   1108983   1349610.0\n",
       "神奈川県  789   7424780   9002475.0\n",
       "福井県   813    773434    939520.0\n",
       "福岡県   945   4647952   5684120.0\n",
       "福島県   747   1786718   2106990.0\n",
       "秋田県   735    980253   1106205.0\n",
       "群馬県   765   2008977   2599545.0\n",
       "茨城県   753   2569535   3273575.0\n",
       "長崎県   957   1396867   1654190.0\n",
       "長野県   825   1867238   2292470.0\n",
       "青森県   717   1198827   1428815.0\n",
       "静岡県   837   3060754   3901980.0\n",
       "香川県   927    841707   1097190.0\n",
       "高知県   939    719429    874865.0\n",
       "鳥取県   891    554709    651450.0\n",
       "鹿児島県  981   1518400   1861520.0"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"接種地域\"]).sum().sort_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id               39903.0\n",
       "接種済数         112171725.0\n",
       "ワクチン累積供給量    146364830.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"接種地域\"]).sum().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 結論\n",
    "\n",
    "ここで試みたことの結論は、\n",
    "\n",
    "- データ項目名のセル結合は、その表が(RDB的な意味で）正規化されていないことの具体的な表れであること。\n",
    "- その構造を理解することで、データの正規化をおこなうことで、プログラム処理が容易になる。\n",
    "\n",
    "とまとめられるでしょう。また、\n",
    "\n",
    "- excelファイル作成時には、（正規化された）データだけのテーブルを含むworksheetと,ユーザーとの入出力のためのworksheetを分けたデザインを使う。\n",
    "\n",
    "ことが望ましいでしょう。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "テーブルの「正規化」を、もう少しわかり易い言葉遣いで説明できるように工夫すべきなのかもしれません。\n",
    "\n",
    "ヘッダ／フッターやテキストボックスを利用することで、データに直接関係のないデータはテーブル（セル）に書き込まないようにできるということの啓蒙も必要でしょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "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>id</th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>接種回</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>内１回目</th>\n",
       "      <td>96</td>\n",
       "      <td>2320702</td>\n",
       "      <td>5198310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>378</td>\n",
       "      <td>1956696</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id     接種済数  ワクチン累積供給量\n",
       "接種回                          \n",
       "内１回目   96  2320702  5198310.0\n",
       "内２回目  378  1956696        0.0"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df[\"接種地域\"]==\"北海道\")&(df['ワクチン供給者'] ==\"ファイザー社\")].groupby(\"接種回\").sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 230,
   "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>接種地域</th>\n",
       "      <th>ワクチン供給者</th>\n",
       "      <th>接種対象</th>\n",
       "      <th>接種回</th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>1991581</td>\n",
       "      <td>5198310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>329121</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>142</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>1663807</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>236</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>292889</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    接種地域 ワクチン供給者    接種対象   接種回     接種済数  ワクチン累積供給量\n",
       "id                                                \n",
       "1    北海道  ファイザー社    一般接種  内１回目  1991581  5198310.0\n",
       "95   北海道  ファイザー社  医療従事者等  内１回目   329121        NaN\n",
       "142  北海道  ファイザー社    一般接種  内２回目  1663807        NaN\n",
       "236  北海道  ファイザー社  医療従事者等  内２回目   292889        NaN"
      ]
     },
     "execution_count": 230,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df[\"接種地域\"] == \"北海道\")&(df['ワクチン供給者'] == \"ファイザー社\")]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "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>接種地域</th>\n",
       "      <th>ワクチン供給者</th>\n",
       "      <th>接種対象</th>\n",
       "      <th>接種回</th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>1991581</td>\n",
       "      <td>5198310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>青森県</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>583289</td>\n",
       "      <td>1383915.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>329121</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>青森県</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内１回目</td>\n",
       "      <td>67672</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>142</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>1663807</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>143</th>\n",
       "      <td>青森県</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>一般接種</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>471657</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>236</th>\n",
       "      <td>北海道</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>292889</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>237</th>\n",
       "      <td>青森県</td>\n",
       "      <td>ファイザー社</td>\n",
       "      <td>医療従事者等</td>\n",
       "      <td>内２回目</td>\n",
       "      <td>59963</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    接種地域 ワクチン供給者    接種対象   接種回     接種済数  ワクチン累積供給量\n",
       "id                                                \n",
       "1    北海道  ファイザー社    一般接種  内１回目  1991581  5198310.0\n",
       "2    青森県  ファイザー社    一般接種  内１回目   583289  1383915.0\n",
       "95   北海道  ファイザー社  医療従事者等  内１回目   329121        NaN\n",
       "96   青森県  ファイザー社  医療従事者等  内１回目    67672        NaN\n",
       "142  北海道  ファイザー社    一般接種  内２回目  1663807        NaN\n",
       "143  青森県  ファイザー社    一般接種  内２回目   471657        NaN\n",
       "236  北海道  ファイザー社  医療従事者等  内２回目   292889        NaN\n",
       "237  青森県  ファイザー社  医療従事者等  内２回目    59963        NaN"
      ]
     },
     "execution_count": 246,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df[\"接種地域\"].isin([\"北海道\",\"青森県\"]))&(df['ワクチン供給者'] == \"ファイザー社\")]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['接種済数', 'ワクチン累積供給量'], dtype='object')"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ef=pandas.ExcelFile(\"kenbetsu-vaccination_data2.xlsx\")\n",
    "df1=ef.parse(sheet_name=\"接種回数DB\",\n",
    "    index_col=(0,1,2,3,4,))\n",
    "# equivalent to:\n",
    "#df1=pandas.read_excel(\"kenbetsu-vaccination_data2.xlsx\",\n",
    "#                     sheet_name=\"接種回数DB\",\n",
    "#    index_col=(0,1,2,3,4,))\n",
    "df1.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MultiIndex([(  1,  '北海道', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  2,  '青森県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  3,  '岩手県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  4,  '宮城県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  5,  '秋田県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  6,  '山形県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  7,  '福島県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  8,  '茨城県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            (  9,  '栃木県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            ( 10,  '群馬県', 'ファイザー社',   '一般接種', '内１回目'),\n",
       "            ...\n",
       "            (273,  '愛媛県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (274,  '高知県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (275,  '福岡県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (276,  '佐賀県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (277,  '長崎県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (278,  '熊本県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (279,  '大分県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (280,  '宮崎県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (281, '鹿児島県', 'ファイザー社', '医療従事者等', '内２回目'),\n",
       "            (282,  '沖縄県', 'ファイザー社', '医療従事者等', '内２回目')],\n",
       "           names=['id', '接種地域', 'ワクチン供給者', '接種対象', '接種回'], length=282)"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1.index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MultiIndexに対しては、`isin`メソッドを使って条件を記述する。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 259,
   "metadata": {
    "tags": []
   },
   "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></th>\n",
       "      <th></th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>接種地域</th>\n",
       "      <th>接種対象</th>\n",
       "      <th>接種回</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">東京都</th>\n",
       "      <th rowspan=\"2\" valign=\"top\">一般接種</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>5117917</td>\n",
       "      <td>13310310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>3877286</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">医療従事者等</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>610484</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>545945</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">青森県</th>\n",
       "      <th rowspan=\"2\" valign=\"top\">一般接種</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>583289</td>\n",
       "      <td>1383915.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>471657</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">医療従事者等</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>67672</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>59963</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     接種済数   ワクチン累積供給量\n",
       "接種地域 接種対象   接種回                      \n",
       "東京都  一般接種   内１回目  5117917  13310310.0\n",
       "            内２回目  3877286         0.0\n",
       "     医療従事者等 内１回目   610484         0.0\n",
       "            内２回目   545945         0.0\n",
       "青森県  一般接種   内１回目   583289   1383915.0\n",
       "            内２回目   471657         0.0\n",
       "     医療従事者等 内１回目    67672         0.0\n",
       "            内２回目    59963         0.0"
      ]
     },
     "execution_count": 259,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1[df1.index.isin([\"青森県\",\"東京都\"], level=\"接種地域\") \n",
    "   & df1.index.isin([\"ファイザー社\"], level=\"ワクチン供給者\")].groupby([\"接種地域\",\"接種対象\",\"接種回\"]).sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`lambda`式をつかえば、より柔軟に記述できるが、記述量、読みやすさの観点からは、「最後の武器　」と考えるのが良いでしょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "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></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>id</th>\n",
       "      <th>接種地域</th>\n",
       "      <th>ワクチン供給者</th>\n",
       "      <th>接種対象</th>\n",
       "      <th>接種回</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <th>北海道</th>\n",
       "      <th>ファイザー社</th>\n",
       "      <th>一般接種</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>1991581</td>\n",
       "      <td>5198310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <th>北海道</th>\n",
       "      <th>ファイザー社</th>\n",
       "      <th>医療従事者等</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>329121</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>142</th>\n",
       "      <th>北海道</th>\n",
       "      <th>ファイザー社</th>\n",
       "      <th>一般接種</th>\n",
       "      <th>内２回目</th>\n",
       "      <td>1663807</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>236</th>\n",
       "      <th>北海道</th>\n",
       "      <th>ファイザー社</th>\n",
       "      <th>医療従事者等</th>\n",
       "      <th>内２回目</th>\n",
       "      <td>292889</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 接種済数  ワクチン累積供給量\n",
       "id  接種地域 ワクチン供給者 接種対象   接種回                     \n",
       "1   北海道  ファイザー社  一般接種   内１回目  1991581  5198310.0\n",
       "95  北海道  ファイザー社  医療従事者等 内１回目   329121        NaN\n",
       "142 北海道  ファイザー社  一般接種   内２回目  1663807        NaN\n",
       "236 北海道  ファイザー社  医療従事者等 内２回目   292889        NaN"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1[[(lambda x:(x[1] == \"北海道\")\n",
    "      &(x[2] == \"ファイザー社\"))(i)\n",
    "     for i in df1.index]\n",
    "   ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "metadata": {
    "tags": []
   },
   "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></th>\n",
       "      <th></th>\n",
       "      <th>接種済数</th>\n",
       "      <th>ワクチン累積供給量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>接種地域</th>\n",
       "      <th>接種対象</th>\n",
       "      <th>接種回</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">北海道</th>\n",
       "      <th rowspan=\"2\" valign=\"top\">一般接種</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>1991581</td>\n",
       "      <td>5198310.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>1663807</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">医療従事者等</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>329121</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>292889</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">青森県</th>\n",
       "      <th rowspan=\"2\" valign=\"top\">一般接種</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>583289</td>\n",
       "      <td>1383915.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>471657</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">医療従事者等</th>\n",
       "      <th>内１回目</th>\n",
       "      <td>67672</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>内２回目</th>\n",
       "      <td>59963</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     接種済数  ワクチン累積供給量\n",
       "接種地域 接種対象   接種回                     \n",
       "北海道  一般接種   内１回目  1991581  5198310.0\n",
       "            内２回目  1663807        0.0\n",
       "     医療従事者等 内１回目   329121        0.0\n",
       "            内２回目   292889        0.0\n",
       "青森県  一般接種   内１回目   583289  1383915.0\n",
       "            内２回目   471657        0.0\n",
       "     医療従事者等 内１回目    67672        0.0\n",
       "            内２回目    59963        0.0"
      ]
     },
     "execution_count": 257,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1[[(lambda x:(x[1] in (\"北海道\",\"青森県\")) &\n",
    "      (x[2] == \"ファイザー社\"))(i) for i in df1.index]\n",
    "   ].groupby([\"接種地域\",\"接種対象\",\"接種回\"]).sum()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.6 64-bit",
   "language": "python",
   "name": "python396jvsc74a57bd0397704579725e15f5c7cb49fe5f0341eb7531c82d19f2c29d197e8b64ab5776b"
  },
  "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.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
