![見出し画像](https://assets.st-note.com/production/uploads/images/67466938/rectangle_large_type_2_bca6426344e16809c5ec773f3cdf64a1.png?width=1200)
#69 2015年度岩手県製造業の環境効率評価指標の推計
今回は、2015(H27)年度岩手県の製造業における業種別環境効率評価指標を推計していきます。
1. 産業廃棄物データの整理
岩手県の産業廃棄物実態調査の「表Ⅰ-16 業種別の発生及び処理状況【全種類】【全地域】[平成27年度]」から、製造業24業種別の廃棄物発生量(Sy)、廃棄物排出量(SDy)、最終処分量(STy)のデータを抽出します。
![](https://assets.st-note.com/img/1639091479016-jotk0FnVyb.png)
2. 環境効率評価指標の推計
#56で言及した環境効率評価指標とその恒等式を再掲します。
![](https://assets.st-note.com/img/1639091603486-506pOkj9Ks.png)
b)資源生産効率(Input Efficiency;IE)「生産額/投入量」
最初に、業種別の生産額を算出します。生産額のデータは、産業連関表の「粗付加価値部門計」の値を用います。
産業連関表から、各産業のコード(code)と粗付加価値部門(added_value_amount)の値だけを抽出した後、データフレーム形式で読み込みます。
# 付加価値額表をデータフレームに読み込む
df_added_value_amount = pd.read_csv('h27iwate_added_value_amount.csv')
df_added_value_amount['code'] = df_added_value_amount['code'].astype('str')
for i in range(len(df_added_value_amount)):
if len(df_added_value_amount['code'][i]) == 3:
df_added_value_amount['code'][i] = '0' + str(df_added_value_amount['code'][i])
df_added_value_amount = df_added_value_amount.set_index('code')
df_added_value_amount.head()
![](https://assets.st-note.com/img/1639122614679-gNhVoqhh4M.png)
続いて、産業連関表の各産業(code)と産業廃棄物実態調査の業種名(sector)との対応表をデータフレームに読み込みます。
各産業(code)と産業廃棄物実態調査の業種名(sector)の対応表をデータフレーム形式で読み込む
df_taiohyo = pd.read_csv('h27iwate_taiohyou.csv')
df_taiohyo['code'] = df_taiohyo['code'].astype('str')
for i in range(len(df_taiohyo)):
if len(df_taiohyo.loc[df_taiohyo.index[i], 'code']) == 3:
df_taiohyo.loc[df_taiohyo.index[i], 'code'] = '0' + str(df_taiohyo.loc[df_taiohyo.index[i], 'code'])
df_taiohyo = df_taiohyo.set_index('code')
df_taiohyo
付加価値額表と対応表をマージします。
# 付加価値額表と対応表をマージする
df_added_value_amount = pd.merge(df_added_value_amount, df_taiohyo, on='code', how='left')
df_added_value_amount.head()
![](https://assets.st-note.com/img/1639122786260-9sNy2Lbb8V.png)
業種別生産額(production)を算出します。
# 業種別生産額を算出する
for i in range(len(df_under_estimation)):
for sector, group in df_added_value_amount.groupby('sector'):
if sector == df_under_estimation.index[i]:
df_under_estimation.iat[i, 2] = group['added_value_amount'].sum()
df_under_estimation
![](https://assets.st-note.com/img/1639122966245-5Vf1jgqVtH.png)
資源生産効率(Input Efficiency;IE)「生産額/投入量」を算出します。コードは以下のようになります。
# IE(資源生産効率)を算出
df_IE = df_under_estimation.copy()
df_IE = df_IE.drop('Ey', axis=1)
df_IE['IE'] = 0
df_IE = df_IE.reindex(columns=['production', 'input', 'IE'])
df_IE['IE'] = df_IE['production'] / df_IE['input']
df_IE
![](https://assets.st-note.com/img/1639123089076-gpTGf6w69g.png)
c)資源有効利用効率(Throughput Efficiency;TE)「投入量/廃棄物排出量」
ここでいう「廃棄物排出量」とは、以下の式で推計するEDyのことを指します。
![](https://assets.st-note.com/img/1639123136158-vgtTv2Pp3V.png)
H27年度岩手県業種別産業廃棄物データをcsv化したファイル(h27iwate_industry_waste_data.csv)をデータフレームに読み込みます。
import pandas as pd
df_swaste = pd.read_csv('h27iwate_industry_waste_data.csv', index_col=0)
df_swaste.head()
![](https://assets.st-note.com/img/1639123301861-l7ef2gslxJ.png)
Ey(各業種の推計値による廃棄物発生量)、EDy(各業種の推計値による廃棄物排出量)のデータを格納する列を追加し、EDyを算出します。
df_TE = df_swaste.copy() # df_swasteをコピー
df_TE['EDy'] = 0 # 列EDyを追加
df_TE['Ey'] = 0 # 列Eyを追加
df_TE = df_TE.reindex(columns=['EDy', 'Ey', 'SDy', 'Sy', 'STy']) # 列順序を変更
# 列Eyに値を代入
for i in range(len(df_TE)):
df_TE.iloc[i, 1] = df_under_estimation.iat[i, 1]
df_TE['EDy'] = df_TE['Ey'] * df_TE['SDy'] / df_TE['Sy'] # EDyを算出
df_TE = df_TE.fillna(0) # 欠損値を0で補完
df_TE
![](https://assets.st-note.com/img/1639123533788-OZOmUs6fMI.png)
資源有効利用効率(Throughput Efficiency;TE)「投入量/廃棄物排出量」を算出します。
# 資源有効利用効率(Throughput Efficiency;TE)「投入量/廃棄物排出量」を算出
df_TE['input'] = 0 # input(投入量)を格納する列を挿入
# df_IEから投入量を転記
for i in range(len(df_TE)):
df_TE.iloc[i, 5] = df_IE.iat[i, 1]
df_OE = df_TE.copy() # 最終処分効率算出用のデータフレームにdf_TEのコピーを格納
df_TE = df_TE.drop(['Ey', 'SDy', 'Sy', 'STy'], axis=1) # 余分な列を削除
df_TE['TE'] = df_TE['input'] / df_TE['EDy'] # 資源有効利用効率(IE)を算出
df_TE = df_TE.reindex(columns=['input', 'EDy', 'TE']) # 列の順序を変更
df_TE
![](https://assets.st-note.com/img/1639123715053-fGlFTYmG91.png)
d)最終処分効率(Output Efficiency;OE)「廃棄物排出量/最終処分量」
ここでいう「最終処分量」とは、以下の式で算出されるETyのことです。
![](https://assets.st-note.com/img/1639123783957-O4l79QxybP.png)
ETyを算出していきます。
# ETy(各業種の推計値による最終処分量)の算出
df_OE['ETy'] = df_OE['Ey'] * df_OE['STy'] / df_OE['Sy']
df_OE = df_OE.fillna(0) # 欠損値を0で補完
df_TCE = df_OE.copy() # 総合的循環効率(TCE)を算出するデータフレームにdf_OEのコピーを格納
df_OE
![](https://assets.st-note.com/img/1639124253845-JOeuV2bsL5.png)
最終処分効率(Output Efficiency;OE)を算出します。
df_OE['OE'] = df_OE['EDy'] / df_OE['ETy']
df_OE = df_OE.drop(['Ey', 'SDy', 'Sy', 'STy', 'input'], axis=1) # 余分な列を削除
df_OE
![](https://assets.st-note.com/img/1639124389218-DT6qVDdClP.png)
a)総合的循環効率(Total Circulation Efficiency;TCE)「生産額/最終処分量」
総合的循環効率を算出します。
df_TCE['production'] = 0 # 生産額(production)を格納する列を追加
# df_IEから生産額を転記
for i in range(len(df_TCE)):
df_TCE.iloc[i, 7] = df_IE.iat[i, 0]
df_TCE = df_TCE.drop(['EDy', 'Ey', 'SDy', 'Sy', 'input', 'STy'], axis=1) # 余分な列を削除
df_TCE['TCE'] = df_TCE['production'] / df_TCE['ETy'] # 総合的循環効率(TCE)を算出
df_TCE = df_TCE.reindex(columns=['production', 'ETy', 'TCE']) # 列の順序を変更
df_TCE
![](https://assets.st-note.com/img/1639124517406-qdBrdUE9dA.png)
環境効率評価指標の一覧
これまで算出してきた環境効率評価指標(a〜d)を一覧にします。
# 業種別環境効率評価指標一覧の作成
df_CEE = df_TCE.copy()
df_CEE = df_CEE.drop(['production', 'ETy'], axis=1)
df_CEE['IE'] = 0 # 資源生産効率(IE)を格納する列を追加
df_CEE['TE'] = 0 # 資源有効利用効率(TE)を格納する列を追加
df_CEE['OE'] = 0 # 最終処分効率(OE)を格納する列を追加
#IE, TE, OEのデータを格納
for i in range(len(df_CEE)):
df_CEE.iat[i, 1] = df_IE.iat[i, 2]
df_CEE.iat[i, 2] = df_TE.iat[i, 2]
df_CEE.iat[i, 3] = df_OE.iat[i, 2]
df_CEE = df_CEE.round() # データを整数で丸める
df_CEE
![](https://assets.st-note.com/img/1639124653457-OMS1eWYIri.png)
サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪