如何使用Python重格式化CSV数据集 实现州为行年份为列的结构转换
长表转宽表CSV格式化实现方案
完全可以通过Python实现该格式转换,基于pandas库仅需几行代码即可完成州维度下按年份拆分的长表到宽表转换,具体实现如下:
前置依赖安装
先安装数据处理需要的pandas库,在终端执行以下命令:pip install pandas
实现代码
import pandas as pd # 读取原始长格式CSV,替换为你本地的原始文件路径 raw_df = pd.read_csv("原始数据集文件路径.csv") # 执行透视转换:行维度为州,列维度为年份,单元格填充对应指标值 # 若你的数据集里州、年份、指标的列名和默认命名不一致,替换单引号内的列名即可 wide_df = raw_df.pivot( index="state", columns="year", values="需要提取的指标字段名" ).reset_index() # 清理透视生成的多级列名索引 wide_df.columns.name = None # 导出符合格式要求的宽表CSV,index=False用于取消导出行号列 # utf-8-sig编码可避免Excel打开时中文乱码,纯英文数据可删除encoding参数 wide_df.to_csv("格式化后输出文件路径.csv", index=False, encoding="utf-8-sig")
特殊场景适配
如果原始数据中存在「同一个州+同一个年份对应多条记录」的重复情况,将上述代码中的pivot方法替换为pivot_table方法,可通过聚合函数处理重复值,示例如下:
wide_df = raw_df.pivot_table( index="state", columns="year", values="需要提取的指标字段名", aggfunc="first" # 重复时取第一条记录,可按需替换为sum/mean/median等聚合规则 ).reset_index()
内容的提问来源于stack exchange,提问作者Treg Townsend
相关产品推荐
相关产品推荐

