You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas如何将指定列行值转为表头重构DataFrame

问题原因

之前两种方法失效的核心原因有两个:

  • values列存储的是[{'value': 数值}]格式的嵌套结构,不是可直接用于表转换的标量值
  • 调用pivot时未指定索引、取值参数,直接转置时没有做指标名到列名的映射,无法生成符合要求的列结构
正确实现代码

直接按以下步骤处理即可,最终输出你要的单行宽表,自动过滤全空的title、description列:

import pandas as pd

# 1. 先从嵌套的values列中提取实际指标值,转为标量
df_list['actual_value'] = df_list['values'].apply(lambda item: item[0]['value'])

# 2. 透视生成宽表,固定保留id、period列,name列值转为新列名
df_result = df_list.pivot(
    index=['id', 'period'],
    columns='name',
    values='actual_value'
).reset_index()

# 3. 清除列索引残留的名称(可选,优化输出格式)
df_result.columns.name = None
结果说明

处理后得到的df_result结构如下:

  • 固定包含id、period两列,取值和原表一致
  • 原name列的每一个唯一指标名(比如total_video_followers、total_video_followers_unique)都会成为独立列,对应列值就是原行中values存储的指标数值
  • 全为空值的title、description列不会出现在结果中
  • 若后续原表存在多组不同id/period的数据,该代码也能兼容,自动按id+period维度生成对应行的宽表结果

内容的提问来源于stack exchange,提问作者KristiLuna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:33:25