将带有 NaN 的 Pandas 数据帧转换为深度 >=2 的嵌套 json

小原克也

我有如下带有 NaN 值的数据框。

Category,Type,Capacity,Efficiency  
Chiller,ChillerA,1000,6.0  
Chiller,ChillerB,2000,5.5  
Cooling Tower,Cooling TowerA,1000,NaN  
Cooling Tower,Cooling TowerB,2000,NaN  

我想将此熊猫数据框转换为以下 json 格式。
谁能告诉我如何实现这个?

{
    "Chiller":{
        "ChillerA":{
            "Capacity":1000,
            "Efficiency":6.0
        },
        "ChillerB":{
            "Capacity":2000,
            "Efficiency":5.5
        },
    },
    "Cooling Tower":{
        "Cooling TowerA":{
            "Capacity":1000 <=Will not include efficiency because efficiency was NaN for this.

        },
        "Cooling TowerB":{
            "Capacity":2000
        },
    },
}
齐帕

这是一个非常强大的解决方案,可以使用嵌套的 dict 理解让您获得所需的输出:

df = df.set_index(['Category', 'Type'])
{level: {chiller: {name: value for name, value in values.items() if not np.isnan(value)} for chiller, values in df.xs(level).to_dict('index').items()} for level in df.index.levels[0]}
#{'Cooling Tower':
#    {'Cooling TowerA':
#       {'Capacity': 1000.0},
#    'Cooling TowerB':
#        {'Capacity': 2000.0}},
# 'Chiller':
#    {'ChillerA': {'Efficiency': 6.0, 'Capacity': 1000.0},
#     'ChillerB': {'Efficiency': 5.5, 'Capacity': 2000.0}}}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将带有嵌套列表的Geo json转换为pandas数据框

将带有整数键的嵌套 json 转换为 pandas 数据框

我正在尝试将深度嵌套的 JSON 转换为 Pandas 数据帧

将深度嵌套的 JSON 响应从 API 调用转换为 Pandas 数据帧

将带有NaN的Json读入Python和Pandas

将带有嵌套标头的CSV转换为JSON

将pandas数据帧转换为dict到JSON,取消拼合嵌套子键,删除None / NaN键

基于2个键列和1个值列的带有嵌套词典的pandas数据帧转换为词典

使用jq和map将带有嵌套对象的JSON对象转换为Name = Value格式

如何将带有numpy数组的嵌套字典转换为json并返回?

将带有嵌套对象的JSON转换为JS中的列表数组

将带有时间戳的pandas数据帧转换为String

如何将 Pandas 数据帧转换为唯一结构化的嵌套 json

将带有Retrofit库的嵌套JSON解析到RecyclerView中:出现加载数据错误

带有列表的嵌套JSON中的pandas数据框

将带有'nan'的字符串转换为numpy

如何将带有JSON字符串的Pandas DataFrame转换为有效JSON?

将带有嵌套数组的对象转换为 FormData

如何将 Pandas 数据帧转换为具有聚合级别的嵌套命名元组

将一列带有嵌套字典的json文件转换为Pandas Dataframe

将嵌套的 json 转换为具有特定输出的数据帧

在Python中将具有重复键的嵌套JSON文件转换为数据帧

将嵌套的 JSON 转换为具有特定条件的 Pandas 数据框

来自嵌套 JSON 的 Pandas 数据帧

将pandas DataFrame转换为任意嵌套的JSON数据

将嵌套的json转换为pandas数据框

将嵌套的 zeep 或 JSON 转换为 pandas 数据框

将嵌套的 JSON 转换为 Pandas 数据框

使用基于JSON的多索引层次结构索引将深度嵌套的JSON转换为Pandas Dataframe