#183 2014年(平成26年)大阪府産業連関表推計における3部門の結合

投稿#182までで、

  • 粗付加価値部門
  • 中間需要部門
  • 最終需要部門

の3つの部門それぞれを推計したDataFrameが作成されたことになります。
今回は、上記3部門のDataFrameを結合します。

合計値の部門の値を算出し、値を代入する

それぞれのDataFrameにある「〇〇計」という部門の合計値を算出し、値を代入していきます。

粗付加価値部門の表の"9600" 粗付加価値部門計と"9700" 府内生産額

粗付加価値部門のDataFrameに

  • "9600" 粗付加価値部門計
  • "9700" 府内生産額

の行を追加し、合計値を代入していきます。

Pythonのコードは、以下のようになります。

code183-1

# 祖付加価値部門の表に"9600" 祖付加価値部門計の行を挿入し、祖付加価値部門計を算出
h26_adjusted_gav_df.loc["9600"] = h26_adjusted_gav_df.loc["7111":"9511", :].sum()
# 祖付加価値部門の表に"9700" 府内生産額の行を挿入し、府内生産額を代入
h26_adjusted_gav_df.loc["9700"] = h26_pro_df.loc["production"]

中間需要部門の表の最終行を"9700" 府内生産額から"7000" 内生部門計に変更

中間需要部門のDataFrameの最終行が"9700" 府内生産額になっています。この行のインデックスを"7000"に変更し、内生部門を合計した値を代入します。

Pythonのコードは、以下のようになります。

code183-2

# 中間需要部門の表の最終行(9700 府内生産額)を"7000" 内生部門計に変更
h26_adjusted_mid_df = h26_adjusted_mid_df.rename(index={"9700": "7000"})
# 行"7000"に内生部門合計値を代入
idx = "7000"
for col in h26_adjusted_mid_df.columns:
    h26_adjusted_mid_df.loc[idx, col] = h26_adjusted_mid_df.loc["0111":"6911", col].sum()

最終需要部門の表の第1列に"7000" 内生部門計を挿入

次に、最終需要部門のDataFrameの第1列に"7000" 内生部門計を挿入します。挿入した列に、内生部門を合計した値を代入します。

Pythonのコードは、以下のようになります。

code183-3

# 最終需要部門の表の第1列に"7000" 内生部門計を挿入
h26_fd_df.insert(0, "7000", 0)
col = "7000"
for idx in h26_adjusted_mid_df.index:
    h26_fd_df.loc[idx, col] = h26_adjusted_mid_df.loc[idx, "0111":"6911"].sum()

列"7611" 在庫純増を挿入し、値を算出

列"7611" 在庫純増を挿入し、下記の部門の合計値を代入します。

  • 761101 生産者製品在庫純増
  • 761102 半製品・仕掛品在庫純増
  • 761103 流通在庫純増
  • 761104 原材料在庫純増

Pythonのコードは、以下のようになります。

code183-4

# 列"7611" 在庫純増を挿入し、値を算出
h26_fd_df.insert(8, "7611", (h26_fd_df["761101"] + h26_fd_df["761102"] 
                             + h26_fd_df["761103"] + h26_fd_df["761104"]
                            )
                )

列"780000" 府内最終需要計を挿入し、値を算出

列"780000" 府内最終需要計を挿入し、値を算出します。
Pythonのコードは、以下のようになります。

code183-5

# 列"780000" 府内最終需要計を算出し、値を代入
h26_fd_df["780000"] = (h26_fd_df["711100"] + h26_fd_df["721100"]
                       + h26_fd_df["721200"] + h26_fd_df["7311"]
                       + h26_fd_df["7311"] + h26_fd_df["741100"]
                       + h26_fd_df["751100"] + h26_fd_df["7611"]
                       + h26_fd_df["771100"]
                      )

列"790000" 府内需要合計を算出し、値を代入

列"790000" 府内需要合計を算出し、値を代入します。
Pythonのコードは、以下のようになります。

code183-6

# 列"790000" 府内需要合計を算出し、値を代入
h26_fd_df["790000"] = h26_fd_df["7000"] + h26_fd_df["780000"]

列"8100" 輸出を挿入し、値を算出

列"8100" 輸出を挿入し、列"810101 輸出(普通貿易)と列"810102 輸出(特殊貿易)との合計額を代入します。
Pythonのコードは、以下のようになります。

code183-7

# 列"8100" 輸出を挿入し、値を算出
h26_fd_df.insert(16, "8011", h26_fd_df["801101"] + h26_fd_df["801102"])

列"810000" 輸出計を算出

列"810000" 輸出計を算出します。
Pythonのコードは、以下のようになります。

code183-8

# 列"810000" 輸出計を算出
h26_fd_df["810000"] = h26_fd_df["8011"] + h26_fd_df["801200"]

列"830000" 最終需要計を算出

列"830000" 最終需要計を算出します。
Pythonのコードは、以下のようになります。

code183-9

# 列"830000" 最終需要計を算出
h26_fd_df["830000"] = (h26_fd_df["780000"]
                              + h26_fd_df["810000"]
                              + h26_fd_df["821100"]
                             )

列"8400" 需要合計を挿入し、値を算出

列"8400" 需要合計を挿入し、値を算出します。
Pythonのコードは、以下のようになります。

code183-10

# 列"8400" 需要合計を挿入し、値を算出
h26_fd_df.insert(23, "8400", h26_fd_df["7000"] + h26_fd_df["830000"])

列"851100" (控除)輸入を算出

列"851100" (控除)輸入を算出します。
Pythonのコードは、以下のようになります。

code183-11

# 列"851100" (控除)輸入を算出
h26_fd_df["851100"] = h26_fd_df["851101"] + h26_fd_df["851102"]

列"880000" 輸入計を算出

列"880000" 輸入計を算出します。
Pythonのコードは、以下のようになります。

code183-12

# 列"880000" 輸入計を算出
h26_fd_df["880000"] = (h26_fd_df["851101"] + h26_fd_df["851102"]
                              + h26_fd_df["851200"] + h26_fd_df["861100"]
                              + h26_fd_df["871100"]
                             )

列"900000" 最終需要部門計の算出

列"900000" 最終需要部門計を算出します。
Pythonのコードは、以下のようになります。

code183-14

# 列"900000" 最終需要部門計の算出
h26_fd_df["900000"] = (h26_fd_df["830000"] + h26_fd_df["880000"]
                              + h26_fd_df["891100"]
                             )

9700" 府内生産額を代入

9700" 府内生産額を代入します。
Pythonのコードは、以下のようになります

code183-15

# "9700" 府内生産額を代入
h26_fd_df["970000"] = h26_pro_df.T["production"]

結合小分類で統合された列を削除

列"761101" 生産者製品在庫純増のように、結合小分類にする際に、他部門と結合されて不要になった列を削除します。

Pythonのコードは、以下のようになります。

code183-16

# 結合小分類で統合された列を削除
h26_osaka_fd_df = h26_fd_df.drop(["761101", "761102", "761103", "761104",
                                  "801101", "801102", "851101", "851102"],axis=1)

最終需要部門のDataFrameには、4桁と6桁の最終需要部門コードが混在しています。結合小分類では、すべての産業部門コードが4桁なので、6桁の最終需要部門コードを4桁に修正します。

Pythonのコードは、以下のようになります。

code183-17

# 列コードが6桁のコードを4桁にする
for col in h26_osaka_fd_df.columns:
    if len(col) == 6:
        h26_osaka_fd_df = h26_osaka_fd_df.rename(columns={col:col[:4]})

各部門の表にあるNaNを0で置換する

それぞれのDataFrame内のNanを0で置換します。
fillnaメソッドを使い、引数に0を指定します。

DataFrameの結合

中間需要部門の表に粗付加価値部門の表を結合

中間需要部門のDataFrameに、粗付加価値部門のDataFrameを結合します。

Pythonのコードは、以下のようになります。

code183-18

# 中間需要部門の表に粗付加価値部門の表を結合
h26_mid_gav_df = h26_adjusted_mid_df.append(h26_adjusted_gav_df)

最終需要部門の表を結合

code182-18で作成したDataFrameに、最終需要部門のDataFrameを結合します。

Pythonのコードは、以下のようになります。

code182-19

# 中間需要部門+粗付加価値部門の表に最終需要部門の表を結合
h26_osaka_io = pd.concat([h26_mid_gav_df, h26_osaka_fd_df], axis=1)

数値を整数値で表す

産業連関表(取引基本表)では、単位が100万円で整数値となっています。よって、3つの部門を結合したDataFrameの数値を整数値で表示します。

Pythonのコードは、以下のようになります。

# 整数値の表を作成
h26_osaka_int_io = h26_osaka_io.copy()
for idx in h26_osaka_io.index:
    for col in h26_osaka_io.columns:
        h26_osaka_int_io.loc[idx, col] = h26_osaka_io.loc[idx, col].astype(int)

これで、2014年(平成26年)大阪府産業連関表の推計が完了したことになります。
DataFrameをCSVファイル形式で保存することにします。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です