【问题标题】:construct pandas multi index dataframe from nested dictionary从嵌套字典构造熊猫多索引数据框
【发布时间】:2021-06-21 18:49:44
【问题描述】:

我想在这里从嵌套字典构建熊猫数据框:

res = {'loss': {'first_neuron': {10: 0.6430850658151839,
                                 12: 0.6419735709090292,
                                 14: 0.628668905776224},
                'lr': {0.001: 0.7243950462635652,
                       0.01: 0.6431898441579607,
                       0.1: 0.5461426520789111}},
       'accuracy': {'first_neuron': {10: 0.6125457246362427,
                                     12: 0.6154635353588763,
                                     14: 0.6285751049901233},
                    'lr': {0.001: 0.5127914948963824,
                           0.01: 0.6298153875050722,
                           0.1: 0.7139774825837877}}}

到这里:

在尝试了herehere 的类似问题后,我无法正确回答

【问题讨论】:

    标签: python pandas dataframe dictionary multi-index


    【解决方案1】:

    您的 dict 包含许多嵌套级别,它们不适合 pandas。您可以先将 dict 解析为更简单的 dict,然后稍微操作数据框:

    from collections import defaultdict
    tmp = defaultdict(list)
    
    for key1, value1 in res.items():
        for key2, value2 in value1.items():
            for key3, value3 in value2.items():
                tmp['metric'].append(key1)
                tmp['index1'].append(key2)
                tmp['index2'].append(key3)
                tmp['value'].append(value3)
               
    df = (
        pd.DataFrame(tmp)
            .pivot(index=['index1', 'index2'], columns='metric')
            .droplevel(0, axis=1)
            .rename_axis(columns=None)
    )
    

    结果:

                         accuracy      loss
    index1       index2                    
    first_neuron 10.000  0.612546  0.643085
                 12.000  0.615464  0.641974
                 14.000  0.628575  0.628669
    lr           0.001   0.512791  0.724395
                 0.010   0.629815  0.643190
                 0.100   0.713977  0.546143
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 2017-12-03
      • 2019-01-11
      • 2023-03-23
      • 2018-04-14
      相关资源
      最近更新 更多