Python 宏观经济实证 · 数据清洗 (1)
本篇针对官方统计数据讲解文件读取、数据结构查看与缺失值处理的完整流程,附可直接复用的代码,帮你快速上手经济数据预处理。这部分代码运行结束后,你可以得到补全的完整数据,便于下一步“特征工程”与“标准化 / 归一化”的进行。“数据清洗”部分完整源码 .ipynb 文件(包括:缺失值处理、特征工程、标准化 / 归一化)已在资源处挂载,需要的朋友可自行下载。一、查看数据、明确目标 首先,对于Economy_1的数据,全部来自于官方统计年鉴、公报与期刊,能够获取到的数据均为标准口径下的标准数据。因此,在确保采集的每个指标数据对应的年份、地区都正确的情况下,不需要处理 “异常值”,即使有较大、较小极度偏离的数据,也是在某年、某地区的现状就是如此。 所以,我们对收集到的数据只做对应指标的缺失值补全、四则运算和标准化 /归一化处理。二、文件读取 1.作为一个研究项目,我们可以把数据文件与程序文件放在同一个文件夹中,一是方便编写代码时不用再去溯源绝对路径,二是方便后期的文件打包; 2.看数据文件的格式,比如在这里我们的文件格式是 .xlsx(但对于大规模数据一般用的时 .csv,想改的话可以“文件另存为 → 文件类型(改成 .csv)→ 保存”); 3. 导入包:import pandas as pd 4. 读取文件:df_1 = pd.read_excel("1 创新驱动-原始数据.xlsx") 5. 查看数据存储格式:df_1.head(20) 运行结果: 由此,我们可以看到每条记录是按照2013 - 2023 的时间顺序、分地区依次存储的,且第一条记录对应索引号 0,第二十条记录对应索引号 19。 如果在读取文件时,将参数 index_col 设置为索引号,索引号对应的列就会变成索引,后续计数将不会把它当作一列数据计入:df_1 = pd.read_excel("1 创新驱动-原始数据.xlsx", index_col = 0) print(df_1.head(20)) 运行结果:三、缺失值处理 先明确,我们获取到的原始数据是标准的(异常值只与 “年份 + 地区” 状态有关,与统计错误无关)、准确的(与溯源到的原始数据 / 文件中的数据保持一致,无录入错误)、需要进行衍生计算的(部分原始数据需要通过四则运算才能变成可以衡量Economy_1的指标)。 但是,在采集原始数据的过程中,个别数据由于统计、公示等原因无法找到和获取,那就产生了 “缺失值”。在研究过程中,对 “缺失值” 的处理办法大致有两种:补全和删除