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

如何遍历Pandas透视表生成字典列表:提取索引与列值

解决Pandas透视表转换为指定字典列表格式的问题

需求说明

给定如下Pandas透视表,需要提取每一列中device_category(设备类别)与对应数值,生成指定结构的字典列表:

原始透视表

import pandas as pd

# 构造示例透视表数据
data = {
    'engaged_sessions': [7765, 388, 2, 87],
    'event_count': [51325, 4349, 38, 111],
    'new_users': [6593, 795, 1, 37],
    'total_revenue': [9, 0, 250, 0],
    'total_users': [8021, 412, 9, 97]
}
df = pd.DataFrame(data, index=['Desktop', 'Mobile', 'Smart Tv', 'Tablet'])
df.index.name = 'device_category'

透视表结构:

engaged_sessions  event_count  new_users  total_revenue  total_users
device_category                                                                      
Desktop                      7765        51325       6593              9         8021
Mobile                        388         4349        795              0          412
Smart Tv                        2           38          1              250          9
Tablet                         87          111         37              0           97

期望输出格式

series: [{
        name: 'engaged_sessions',
        data: [{
            name: 'Desktop',
            y: 7765,
        }, {
            name: 'Mobile',
            y: 388
        }, ...]
        }, {
        name: 'event_count',
        data: [{
            name: 'Desktop',
            y: 51325,
        }, {
            name: 'Mobile',
            y: 4349
        }, ...]
        }, ...]

解决方案

直接遍历透视表的每一列,对列内的每个设备类别和对应值生成字典,再组合成目标结构:

series = []
# 遍历每一列
for col_name in df.columns:
    # 生成当前列的data列表:每个元素是{name: 设备类别, y: 对应数值}
    data_items = [{"name": device, "y": value} for device, value in df[col_name].items()]
    # 将列名和data列表组合成字典,加入series
    series.append({"name": col_name, "data": data_items})

代码说明

  • df.columns 获取所有统计指标列名,对应输出里的name字段
  • df[col_name].items() 遍历当前列的索引(设备类别)和对应数值,生成data列表中的每个字典
  • 最终series变量完全符合期望的结构,可直接用于后续业务场景(比如可视化配置)

为什么之前的方法效果不佳?

  • to_dict() 默认生成的是{列名: {设备: 数值}}的嵌套字典,需要额外转换才能匹配目标格式
  • groupby是按行维度分组,而需求是按列维度提取数据,方向不对,所以无法得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:03:30