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

如何从指定DataFrame生成带有多级列的目标表格?

问题:将指定DataFrame转换为多级列表格

我有如下DataFrame:

data = {
    'names': ['Rose', 'Rose', 'Tulip', 'Tulip', 'Lily'],
    'f': [10, 20, 5, 15, 30],
    'h': [5, 8, 6, 12, 10],
    'date':['2023-01-01', '2023-02-01', '2023-02-01', '2023-03-01', '2023-04-01']
}

想要生成如下带有多级列的表格:

Rose          Tulip          Lily                   
              f  h        f        h        f        h
2023-01-01   10  5        0        0        0        0
2023-02-01   20  8        5        6        0        0
2023-03-01   0   0        15       12       0        0
2023-04-01   0   0        0         0       30       10
解决方案

可以通过以下步骤实现:

  • 转换为DataFrame对象
    先将字典数据转为pandas的DataFrame:

    import pandas as pd
    
    df = pd.DataFrame(data)
    
  • 设置索引并重塑列结构
    指定date和names为索引,再用unstack将names列转为外层列,同时用fill_value=0填充缺失的数值:

    result = df.set_index(['date', 'names'])[['f', 'h']].unstack(fill_value=0)
    
  • 调整列层级顺序(可选)
    若需要确保花名作为外层列、f/h作为内层列的顺序,可通过swaplevel和sort_index优化列的排列:

    result = result.swaplevel(axis=1).sort_index(axis=1)
    

执行上述代码后,result就是目标格式的多级列表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:13:10