按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

靠谱杨 2023-3-13 31 3/13

第二张图是之前的格式,今天应一位网友的要求,将其处理为如下第三张图的格式。更贴近源文档,方便使用。

按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

如图所示: 按 门类编码 门类名称 大类编码 大类名称 中类编码 中类名称 小类编码 小类名称 划分数据 , 一目了然!

按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

源文件如下图所示:

按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

数据源没有变化,只是处理了一下原来的格式,可以参见我的随笔:

https://www.cnblogs.com/rainbow-1/p/15474688.html

https://www.cnblogs.com/rainbow-1/p/15474688.html

这是处理的代码:

import pymysql
def get_conn():
    """
    :return: 连接,游标
    """
    # 创建连接
    conn = pymysql.connect(host="127.0.0.1",
                    user="root",
                    password="reliable",
                    db="data_cleaning",
                    charset="utf8")
    # 创建游标
    cursor = conn.cursor()  # 执行完毕返回的结果集默认以元组显示
    return conn, cursor
def query(sql,*args):
    """
    通用封装查询
    :param sql:
    :param args:
    :return:返回查询结果 ((),())
    """
    conn , cursor= get_conn()
    print(sql)
    cursor.execute(sql)
    res = cursor.fetchall()
    close_conn(conn , cursor)
    return res
def close_conn(conn, cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()
# 读取源数据表std_code_2017,拆分字段插到新的数据表national_industrial_code
def func_into_new_table() :
    conn,cursor = get_conn() # 连接数据库data_cleaning
    SQL = 'SELECT * FROM std_code_2017;'
    res_data = query(SQL)
    v_rate_type = '01'
    v_rate_time = '2023'
    # print(res_data[0])
    # 分别处理 编码code 和名称name 处理一条插入一条
    for item in res_data:
        code = str(item[0])  # 编码如A0111
        name = str(item[1])  # 名称如'门类·大类·中类·小类'
        # 四级分类编码和名称分别从1~4 如下
        code_1 = code[0:1]  # 如 A
        code_2 = code[1:3]  # 如 01
        code_3 = code[1:4]  # 如 011
        code_4 = code[1:5]  # 如 0111
        name_1 = name.split('·')[0]
        name_2 = name.split('·')[1]
        name_3 = name.split('·')[2]
        name_4 = name.split('·')[3]
        # 共11个字段需要插入,主键ID自增+两个固定字段+8个分类细节
        SQL_NEW = 'insert into national_industrial_code (' \
                  'id,' \
                  'rate_type,' \
                  'rate_time,' \
                  'category_code,' \
                  'category_name,' \
                  'large_code,' \
                  'large_name,' \
                  'medium_code,' \
                  'medium_name,' \
                  'small_code,' \
                  'small_name)' \
                  'values(0,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);'
        param = (v_rate_type,v_rate_time,code_1,name_1,
                 code_2,name_2,code_3,name_3,code_4,name_4)
        cursor.execute(SQL_NEW,param)
        # 提交
        conn.commit()
    close_conn(conn,cursor) # 关闭数据库
    return 0

if __name__ == '__main__':
    func_into_new_table()

新数据表结构:

CREATE TABLE `national_industrial_code` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `rate_type` char(2) NOT NULL COMMENT '统计方式: 01 年  02 季度  03 月',
  `rate_time` varchar(8) NOT NULL COMMENT '统计时间: 年2023 季度2023-1 月份202303',
  `category_code` varchar(8) NOT NULL COMMENT '门类编码',
  `category_name` varchar(64) NOT NULL COMMENT '门类名称',
  `large_code` varchar(8) DEFAULT NULL COMMENT '大类编码',
  `large_name` varchar(64) DEFAULT NULL COMMENT '大类名称',
  `medium_code` varchar(8) DEFAULT NULL COMMENT '中类编码',
  `medium_name` varchar(64) DEFAULT NULL COMMENT '中类名称',
  `small_code` varchar(8) DEFAULT NULL COMMENT '小类编码',
  `small_name` varchar(64) DEFAULT NULL COMMENT '小类名称',
  `insustry_type` tinyint(2) DEFAULT NULL COMMENT '行业所属产业分类(1:一产;2:二产;3:三产)',
  `heavy_type` tinyint(2) DEFAULT NULL COMMENT '行业所属工业类型(1:轻工业、2:重工业)',
  `extend_field1` varchar(32) DEFAULT NULL COMMENT '扩展字段1',
  `extend_field2` varchar(255) DEFAULT NULL COMMENT '扩展字段2',
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='国民经济行业分类表';

!!!获取方式!!!

关注我的VX公众号:靠谱杨的挨踢生活,回复【行业】即可

整理不易,资源fu费,谢谢支持!

按四级分类处理GB/T4754—2017国民经济行业分类与代码【文末获取下载方式】

- THE END -

靠谱杨

3月13日20:04

最后修改:2023年3月13日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论