{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### e-Stat 【政府統計の総合窓口】データの利活用\n", "https://www.e-stat.go.jp/ のデータを用いたheatmapによる可視化 \n", "ネット上の情報取得から、データ処理・解析、可視化までをnotebbok上でワンストップで行う" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import japanize_matplotlib\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 以下、ファイル読み込みと整形" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
時点地域コード地域ガソリン販売量【kL】注記
16752015年度47000沖縄県593628NaN
16762016年度47000沖縄県700569NaN
16772017年度47000沖縄県691725NaN
16782018年度47000沖縄県699740NaN
16792019年度47000沖縄県691509NaN
\n", "
" ], "text/plain": [ " 時点 地域コード 地域 ガソリン販売量【kL】 注記\n", "1675 2015年度 47000 沖縄県 593628 NaN\n", "1676 2016年度 47000 沖縄県 700569 NaN\n", "1677 2017年度 47000 沖縄県 691725 NaN\n", "1678 2018年度 47000 沖縄県 699740 NaN\n", "1679 2019年度 47000 沖縄県 691509 NaN" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# ガソリン販売量の都道府県別時系列データ\n", "df0 = pd.read_csv('TimeSeriesResult_20220526074338419.csv')\n", "\n", "# グラフ作成用のタイトルと規格化の際の基準年を取得\n", "graphtitle = df0.columns[3]\n", "ini_year = df0['時点'][0]\n", "df0.tail()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
時点地域コード地域ガソリン販売量【kL】
01985年度0全国38830050
11986年度0全国39637821
21987年度0全国40761056
31988年度0全国42631380
41989年度0全国43289512
\n", "
" ], "text/plain": [ " 時点 地域コード 地域 ガソリン販売量【kL】\n", "0 1985年度 0 全国 38830050\n", "1 1986年度 0 全国 39637821\n", "2 1987年度 0 全国 40761056\n", "3 1988年度 0 全国 42631380\n", "4 1989年度 0 全国 43289512" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 注記列を削除\n", "df0.drop(['注記'], axis=1, inplace=True)\n", "df0.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
時点地域コード地域data
01985年度0全国38830050
11986年度0全国39637821
21987年度0全国40761056
31988年度0全国42631380
41989年度0全国43289512
\n", "
" ], "text/plain": [ " 時点 地域コード 地域 data\n", "0 1985年度 0 全国 38830050\n", "1 1986年度 0 全国 39637821\n", "2 1987年度 0 全国 40761056\n", "3 1988年度 0 全国 42631380\n", "4 1989年度 0 全国 43289512" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df0.rename(columns={df0.columns[-1]:'data'}, inplace=True)\n", "df0.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県', '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県', '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県', '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県', '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県', '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県', '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県']\n" ] } ], "source": [ "# 都道府県リストの取得\n", "prefs = df0['地域'].unique().tolist()[1:]\n", "print(prefs)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
時点北海道
351985年度1693383
361986年度1669138
371987年度1659235
381988年度1694518
391989年度1678936
\n", "
" ], "text/plain": [ " 時点 北海道\n", "35 1985年度 1693383\n", "36 1986年度 1669138\n", "37 1987年度 1659235\n", "38 1988年度 1694518\n", "39 1989年度 1678936" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = df0.groupby('地域')\n", "#a.get_group('北海道')\n", "pref = prefs[0]\n", "df = a.get_group(pref).rename(columns={'data': pref}).drop(['地域コード', '地域'], axis=1)\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
時点北海道青森県岩手県宮城県秋田県山形県福島県茨城県栃木県...愛媛県高知県福岡県佐賀県長崎県熊本県大分県宮崎県鹿児島県沖縄県
01985年度16933834348914345757827023801223809217152191054713757472...4305562705841601523299694404515582845379698384990559341341592
11986年度16691384314264220728099363829263717857124381088797784129...4372712789361659655316865407824589272379934389229574230356124
21987年度16592354331484132458416583849603797447307611135242813348...4590692840771655597328561410784601072395998399095589528377631
31988年度16945184409754224198845983923333891827649841202633858000...4722332966401766326344782427630622669410069411383621142396566
41989年度16789364417694276188802603996863930287716371227117871196...4751472995911700010344533443632627062417853427102618488413114
\n", "

5 rows × 48 columns

\n", "
" ], "text/plain": [ " 時点 北海道 青森県 岩手県 宮城県 秋田県 山形県 福島県 茨城県 \\\n", "0 1985年度 1693383 434891 434575 782702 380122 380921 715219 1054713 \n", "1 1986年度 1669138 431426 422072 809936 382926 371785 712438 1088797 \n", "2 1987年度 1659235 433148 413245 841658 384960 379744 730761 1135242 \n", "3 1988年度 1694518 440975 422419 884598 392333 389182 764984 1202633 \n", "4 1989年度 1678936 441769 427618 880260 399686 393028 771637 1227117 \n", "\n", " 栃木県 ... 愛媛県 高知県 福岡県 佐賀県 長崎県 熊本県 大分県 \\\n", "0 757472 ... 430556 270584 1601523 299694 404515 582845 379698 \n", "1 784129 ... 437271 278936 1659655 316865 407824 589272 379934 \n", "2 813348 ... 459069 284077 1655597 328561 410784 601072 395998 \n", "3 858000 ... 472233 296640 1766326 344782 427630 622669 410069 \n", "4 871196 ... 475147 299591 1700010 344533 443632 627062 417853 \n", "\n", " 宮崎県 鹿児島県 沖縄県 \n", "0 384990 559341 341592 \n", "1 389229 574230 356124 \n", "2 399095 589528 377631 \n", "3 411383 621142 396566 \n", "4 427102 618488 413114 \n", "\n", "[5 rows x 48 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for pref in prefs[1:]:\n", " df_tmp = a.get_group(pref).rename(columns={'data': pref}).drop(['地域コード', '地域'], axis=1)\n", " df = pd.merge(df, df_tmp, on='時点', how='left')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
北海道青森県岩手県宮城県秋田県山形県福島県茨城県栃木県群馬県...愛媛県高知県福岡県佐賀県長崎県熊本県大分県宮崎県鹿児島県沖縄県
198516933834348914345757827023801223809217152191054713757472782923...4305562705841601523299694404515582845379698384990559341341592
198616691384314264220728099363829263717857124381088797784129798005...4372712789361659655316865407824589272379934389229574230356124
198716592354331484132458416583849603797447307611135242813348818464...4590692840771655597328561410784601072395998399095589528377631
198816945184409754224198845983923333891827649841202633858000850408...4722332966401766326344782427630622669410069411383621142396566
198916789364417694276188802603996863930287716371227117871196871392...4751472995911700010344533443632627062417853427102618488413114
\n", "

5 rows × 47 columns

\n", "
" ], "text/plain": [ " 北海道 青森県 岩手県 宮城県 秋田県 山形県 福島県 茨城県 \\\n", "年 \n", "1985 1693383 434891 434575 782702 380122 380921 715219 1054713 \n", "1986 1669138 431426 422072 809936 382926 371785 712438 1088797 \n", "1987 1659235 433148 413245 841658 384960 379744 730761 1135242 \n", "1988 1694518 440975 422419 884598 392333 389182 764984 1202633 \n", "1989 1678936 441769 427618 880260 399686 393028 771637 1227117 \n", "\n", " 栃木県 群馬県 ... 愛媛県 高知県 福岡県 佐賀県 長崎県 熊本県 \\\n", "年 ... \n", "1985 757472 782923 ... 430556 270584 1601523 299694 404515 582845 \n", "1986 784129 798005 ... 437271 278936 1659655 316865 407824 589272 \n", "1987 813348 818464 ... 459069 284077 1655597 328561 410784 601072 \n", "1988 858000 850408 ... 472233 296640 1766326 344782 427630 622669 \n", "1989 871196 871392 ... 475147 299591 1700010 344533 443632 627062 \n", "\n", " 大分県 宮崎県 鹿児島県 沖縄県 \n", "年 \n", "1985 379698 384990 559341 341592 \n", "1986 379934 389229 574230 356124 \n", "1987 395998 399095 589528 377631 \n", "1988 410069 411383 621142 396566 \n", "1989 417853 427102 618488 413114 \n", "\n", "[5 rows x 47 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 列名を時点から年に変更\n", "df.rename(columns={'時点': '年'},inplace=True)\n", "\n", "# 年度を削除(ex. 2000年度 → 2000)\n", "df['年'] = df['年'].apply(lambda x: x.replace('年度', ''))\n", "df.set_index('年', inplace=True)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 作成した dataframe のExcelへの保存\n", "解析結果をExcelで出力してやり取りする場合などに利用" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# 整形データのExcel形式での保存\n", "df.to_excel(r\"D:\\users\\desktop\\gasoline_pref.xlsx\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.10.4" } }, "nbformat": 4, "nbformat_minor": 2 }