如何将Pandas读取的世界银行宽格式碳排放数据转为三列长表
你需要的宽表转长表使用pandas.melt()方法实现更适配,你之前想到的pivot一般用于长表转宽表的反向操作。以下是可行的实现方案:
实现代码
# 1. 将作为行索引的经济体字段转为普通列 df_reset = df.reset_index(names=['Economy']) # 2. 宽表转长表,保留经济体字段,将所有年份列转为行维度 df_long = df_reset.melt( id_vars = ['Economy'], var_name = 'year', value_name = 'value' ) # 3. 可选优化:清理年份字段格式,去除YR前缀转为整数类型,方便后续时间维度分析 df_long['year'] = df_long['year'].str.replace('YR', '').astype(int) # 4. 可选过滤:去除碳排放值为空的无效行 df_long = df_long.dropna(subset=['value'])
简化实现(stack方法)
如果你偏好更短的代码,也可以用stack方法直接实现,效果完全一致:
df_long = df.stack().reset_index() df_long.columns = ['Economy', 'year', 'value'] # 同样可以加上上述的年份清理、空值过滤步骤
两种方案执行后都可以得到仅包含Economy、year、value三个字段的长表结构。
内容的提问来源于stack exchange,提问作者Lostsoul
相关产品推荐
相关产品推荐

