You need to enable JavaScript to run this app. 如何将带Author、Date多级索引的Pandas DataFrame转为指定结构嵌套字典
优惠活动
大模型
产品
解决方案
定价
更多

如何将带Author、Date多级索引的Pandas DataFrame转为指定结构嵌套字典

Pandas多级索引Git提交数据转嵌套字典方案

你当前的聚合结果为Author、Date两级行索引,SHA、Insertion、Deletion为数据列,只需先重置索引再做分组转换即可得到目标嵌套结构,操作代码如下:

步骤1:重置索引将多级行索引转为普通列

假设你的聚合后DataFrame命名为agg_df,先执行重置索引操作:

# 重置索引,把Author、Date从索引转为普通列
df_reset = agg_df.reset_index()
# 可选:如果需要日期为字符串格式而非Timestamp,添加这一行
df_reset['Date'] = df_reset['Date'].dt.strftime('%Y-%m-%d')

步骤2:按作者分组后转换为嵌套字典

result_dict = (
    # 一级分组:按Author聚合
    df_reset.groupby('Author')
    # 每组内将日期设为索引,保留三个指标列,转成日期为键的字典
    .apply(lambda x: x.set_index('Date')[['SHA', 'Insertion', 'Deletion']].to_dict('index'))
    # 最外层转为作者名为键的字典
    .to_dict()
)

输出结构示例

转换后的结构完全匹配需求:

{
    "张三": {
        "2024-05-01": {"SHA": 2, "Insertion": 156, "Deletion": 32},
        "2024-05-02": {"SHA": 1, "Insertion": 47, "Deletion": 9}
    },
    "李四": {
        "2024-05-01": {"SHA": 3, "Insertion": 201, "Deletion": 78},
        "2024-05-03": {"SHA": 2, "Insertion": 89, "Deletion": 14}
    }
}

该结构可以直接用于前端表格渲染,作者、日期、指标字段完整保留,无需额外转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 05:39:02