首先声明:这是本人原创的数据清洗代码,仅此一家,并非从别人哪里获取的
项目说明:Eora官方的数据是txt格式(如Eora26_1990_bp_FD.txt和Eora26_1990_bp_T.txt),并非完整数据没法直接用,本人写了个python脚本用于合并数据,并清洗国家代码、产业代码、配平为可用于计算的投入产出表
数据时间跨度:1990——2016,26个产业,189个国家(官方宣传的190国家实则代码SUD和SDN均表示苏丹,这里是为了与国际贸易数据库做匹配,因此保留SUD,删SDN)
测算难点
1 官方提供的零散的txt文档,行数多,需要专业文本处理软件或者pandas或者R等专业数据分析工具才能显示正确格式,因此需要批量组合数百个txt文档并调平投入产出表
2 国家名称各年份顺序不一致,为了保证运算结果易于查找,需要按A-Z对国家名称排序
3内存危机,相比于wiod/oecd/adb投入产出表的测算,EORA26的矩阵占内存更大,进行价值链分解时一个变量动辄几个G,因此需要改进测算ADB和OECD的测算代码,在保证结果准确基础上实现矩阵稀疏化、动态内存规划、并行运算等操作。
4 关于个人改进的R语言代码是否能准确计算价值链指标:用改进后的代码测算了ADB和OECD投入产出表,测算结果与改进UIBE官方测算结果一致(运算时间缩短30%)
但仍然受限于机器性能(i7 9700,16G内存,12线程,500G固态,完整代码运算时间目测30天),因此Eora投入产出表目前仅完成了数据清洗和可计算的投入产出表构建、一部分中间值分解,一部分价值链长度测算,但是代码是准确无误可以直接运行的(11代i7 更高线程数的电脑应该能在一周内运算出结果)
程序列表:
step1_combineEORA26.py
step2_clean_namefile.py
step3_further_cleaningEORA(Allyear).py
step4_Prepare_before_calc.py
以下购买链接: