【问题标题】:How to convert stacked dataframe to dictionary in pandas?如何将堆叠的数据框转换为熊猫中的字典?
【发布时间】:2018-10-10 06:37:18
【问题描述】:

我有如下堆叠的数据框。我尝试使用to_dict() 命令转换为字典。但是,我收到以下错误。

TypeError: key ('PODIUM WINDOW', 'SHGC value') is not a string  

谁能告诉我我应该如何进一步将这个堆叠的数据框转换为字典,如下所示?

[{"Construction":"Office Window","U-value[W/m2-K]":1.63},{"Construction":"Office Window","SHGC value":0.22},{"Construction":"Podium Window","U-value[W/m2-K]":5.48},{"Construction":"Podium Window","SHGC value":0.70}]

堆叠数据框

Construction
OFFICE WINDOW  U-value[W/m2-K]    1.63
               SHGC value         0.22
PODIUM WINDOW  U-value[W/m2-K]    5.48
               SHGC value         0.70

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    unstack 重塑,由reset_indexindex 创建列,最后调用DataFrame.to_dict

    d = df.unstack().reset_index().to_dict(orient='records')
    print (d)
    
    [{'Construction': 'OFFICE WINDOW', 'SHGC value': 0.22, 'U-value[W/m2-K]': 1.63}, 
     {'Construction': 'PODIUM WINDOW', 'SHGC value': 0.7, 'U-value[W/m2-K]': 5.48}]
    

    编辑:通过构造函数使用dictionary 的列表理解:

    d = [{'Construction': i, j:k} for (i, j), k in df.items()]
    print (d)
    
    [{'Construction': 'OFFICE WINDOW', 'U-value[W/m2-K]': 1.63}, 
     {'Construction': 'OFFICE WINDOW', 'SHGC value': 0.22}, 
     {'Construction': 'PODIUM WINDOW', 'U-value[W/m2-K]': 5.48}, 
     {'Construction': 'PODIUM WINDOW', 'SHGC value': 0.7}]
    

    【讨论】:

    • 感谢您的回答。我修改了我想要讨论的字典格式。如果可以的话,你能回答吗?
    猜你喜欢
    • 2019-07-18
    • 2018-07-14
    • 2019-05-07
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-08-18
    相关资源
    最近更新 更多