如何使用Python将原始监测数据转换为规范的时间维度数据集
长格式追踪数据转宽格式实现指引
前置依赖
Spyder环境可直接安装pandas数据处理库,读取xlsx格式文件需额外安装openpyxl依赖包。
步骤1:读取原始数据
- 用到的方法:pandas的
read_excel()函数,读取时可通过参数指定读取的工作表、字段范围,xlsx格式需额外指定engine='openpyxl'。
步骤2:提取受访者固定属性
活动类型、子活动类型为受访者维度的固定字段,需提前提取去重生成基础表:
- 用到的方法:
drop_duplicates()函数,指定subset参数为受访者唯一ID列,保留唯一ID、活动类型、子活动类型三个字段即可,得到每个受访者仅出现1次的基础表。
步骤3:长表转宽表核心处理
按「月份+指标」规则生成新字段的需求本质是长面板转宽面板,直接用透视功能实现:
- 用到的方法:
pivot()函数,参数配置规则:- index参数设为受访者唯一ID,作为宽表的行唯一标识
- columns参数设为原始数据的月份列,自动以月份值作为新字段前缀
- values参数设为所有需要展开的指标字段,例如收入、储蓄等
- 转置后会生成两级索引的列名,直接将两级名称按「月份全称/缩写_指标名」的规则拼接即可得到符合要求的字段名,比如1月收入对应
january_income。列名拼接可使用列表推导式遍历,或调用str.cat()方法实现。
步骤4:合并得到最终数据集
将步骤2得到的固定属性基础表,与步骤3得到的宽表按唯一ID关联合并:
- 用到的方法:
merge()函数,指定on参数为受访者唯一ID列即可完成关联。
步骤5:结果导出
如需将结果存回Excel,调用宽表的to_excel()方法,指定存储路径,设置index=False即可避免导出默认索引列。
内容的提问来源于stack exchange,提问作者Small_Cookie
相关产品推荐
相关产品推荐

