#195 2000年(平成12年)兵庫県物量表の推計
投稿#194までにおいて、以下の先行研究の追試を行い、概ね妥当な追試結果を得ることができました。
本投稿から、先行研究と同様の手法を用いて、2000年(平成12年)兵庫県の生産活動におけるマテリアルフローの推計に取り掛かることにします。
2000年(平成12年)兵庫県産業連関表を入手
産業連関表(平成12年(2000年)統計表)より、基本分類(186部門表)をダウンロードします。
また、部門分類・コード表も入手し、橘ら(2012)の付録1「各品目の重量単価(t/百万円)の部門分類・コードがどの程度一致しているのかを確認します。
確認の結果、橘ら(2012)の付録1に記載がある産業分類はすべて、2000年(平成12年)の兵庫県産業連関表基本分類と部門分類・コードともに一致していました。
2000年兵庫県産業連関表ファイルをcsvファイルにして保存
先ほどダウンロードした2000年(平成12年)兵庫県産業連関表を加工します。まず、取引金額が3桁区切りで表示されているので、セルの書式設定において3桁区切りのチェックを外します。
次に、産業分類コードが入力されているセルにおいて、セルの書式設定が文字列になっているかを確認し、なっていない場合には文字列に変更します。
産業分類コード「9099」以降の行を削除したら、ファイル形式をcsvにして保存します。
行コードを4桁にしたものをインデックスに指定する関数を定義
産業連関表のcsvファイルをデータフレーム形式で読み込みます。その際、産業分類コードを4桁の文字列インデックスとして変換したデータフレームを返す関数を定義しておきます。
関数として定義する理由は、インデックスが産業分類コードのcsvファイルをデータフレーム形式で読み込むことが何度かあるためです。
Pythonのコードは、以下のようになります。
コード195-1 4桁の産業分類コードをインデックスとしたデータフレームを返す関数
def fourcodeindex(df):
df.rename(columns={'Unnamed: 0':'code'}, inplace=True)
df['code'] = df['code'].astype('str')
for i in range(len(df)):
if len(df.iat[i, 0]) == 3:
df.iat[i, 0] = '0' + str(df.iat[i, 0])
df = df.set_index('code', inplace=True)
return df
重量単価を用いて産業連関表のキャッシュフローをマテリアルフローに変換
MFは,産業連関表の取引金額に重量単価を乗じて,取引額を取引物量に変換した値を用いて推計した。
橘ら(2012)より引用
上記の引用文における「MF」は、Material Flow、つまり物量(取引物量)のフローになります。
産業連関表の取引金額に重量単価を乗じて、取引額を取引物量に変換しました。なお、重量単価の表は、投稿#192において作成したものを利用しました。物量(取引物量)を記載した表を「物量表」と呼ぶことにします。
なお、単位をt/人/年とするため、各項目を平成12年の兵庫県の人口で割ります。
Pythonのコードは、以下のようになります。
コード195-2 2000年兵庫県物量表を作成
df_h12_mt = df_h12_hyogo_io.copy()
df_h12_mt[:] = 0
# 産業連関表の取引金額に重量単価を乗じて、取引金額を取引物量に変換
for i in df_h12_hyogo_io.index:
for j in df_h12_wpup.index:
if j == i:
for k in df_h12_hyogo_io.columns:
df_h12_mt.loc[i][k] = df_h12_hyogo_io.loc[i][k] * df_h12_wpup.loc[j]
pop = 5550574 # H12兵庫県人口
df_h12_per_cap_mt = df_h12_mt / pop # t/人/年に換算
df_h12_per_cap_mt
“#195 2000年(平成12年)兵庫県物量表の推計” に対して1件のコメントがあります。