/
create_asset_data.py
77 lines (71 loc) · 3.01 KB
/
create_asset_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
"""
This script creates the asset_data.csv file that will be read into the
Asset object in CCC.
"""
# Import packages
import os.path
import sys
import numpy as np
import pandas as pd
from ccc.utils import diff_two_tables
import read_bea
from soi_processing import pull_soi_data
import pull_depreciation
from ccc.constants import (MAJOR_ASSET_GROUPS, MINOR_ASSET_GROUPS,
BEA_CODE_DICT)
from data_paths import get_paths
globals().update(get_paths())
# get soi totals for assets
soi_data = pull_soi_data()
# read in the BEA data on fixed assets and separate them by
# corp and non-corp
fixed_assets = read_bea.fixed_assets(soi_data)
# read in BEA data on inventories and separate by corp and
# non-corp and industry
inventories = read_bea.inventories(soi_data)
# read in BEA data on land and separate by corp and non-corp
# and industry
# this function also takes care of residential fixed assets
# and the owner-occupied housing sector
land, res_assets, owner_occ_dict = read_bea.land(
soi_data, fixed_assets)
# put all asset data together
asset_data = read_bea.combine(
fixed_assets, inventories, land, res_assets, owner_occ_dict)
# collapse over different entity types and just get the sum of corporate
# and non-corporate by industry and asset type
asset_data_by_tax_treat = pd.DataFrame(asset_data.groupby(
['tax_treat', 'Asset Type', 'assets', 'bea_asset_code',
'bea_ind_code', 'Industry', 'minor_code_alt']).sum()).reset_index()
asset_data_by_tax_treat.drop(columns=['level_0', 'index'], inplace=True)
# Merge in major industry and asset grouping names...
# Add major asset group
asset_data_by_tax_treat['major_asset_group'] =\
asset_data_by_tax_treat['Asset Type']
asset_data_by_tax_treat['major_asset_group'].replace(MAJOR_ASSET_GROUPS,
inplace=True)
# Add minor asset group
asset_data_by_tax_treat['minor_asset_group'] =\
asset_data_by_tax_treat['Asset Type']
asset_data_by_tax_treat['minor_asset_group'].replace(MINOR_ASSET_GROUPS,
inplace=True)
# Add major industry groupings
asset_data_by_tax_treat['Industry'] =\
asset_data_by_tax_treat['Industry'].str.strip()
asset_data_by_tax_treat['major_industry'] =\
asset_data_by_tax_treat['bea_ind_code']
asset_data_by_tax_treat['major_industry'].replace(BEA_CODE_DICT,
inplace=True)
# Merge in economic depreciation rates and tax depreciation systems
deprec_info = pull_depreciation.get_depr()
asset_data_by_tax_treat = asset_data_by_tax_treat.merge(
deprec_info, on='bea_asset_code', how='left', copy=True)
# Give land and inventories depreciation info?
# clean up
asset_data_by_tax_treat.drop(columns=['Asset Type_x', 'Asset Type_y'],
inplace=True)
asset_data_by_tax_treat.rename(
columns={"Asset": "asset_name"}, inplace=True)
# save result to csv
asset_data_by_tax_treat.to_csv(os.path.join(_CUR_DIR,
'ccc_asset_data.csv'))