如何将多索引数据框、按多列分组的数据框转换为嵌套的 json

我的 Pandas 系列是通过对具有“var”和“month”列的 DataFrame 应用 groupby 操作并对相应数据应用 sum 得到的,如下所示(“var”和“month”是下面的索引):


    var  month

X   Feb     -0.061575

    Jan      1.366478

Y   Feb     -1.310896

Z   Apr      0.053076

    Feb      1.292415

    Mar      0.375144

P   Feb      1.241288

    Mar      0.613453

我想要从上面的 DataFrame 创建的 JSON 格式,如下所示:


'data':[{'label': 'X', 'data': ['Jan': 1.366478, 'Feb': -0.061575]}, ... ]

我知道基本的 pandas.to_json()在这里可能不起作用。可能列表理解、lambda 函数等的组合可以在这里工作?


我能想到的最接近的是:


dict = {k: df[k].to_dict() for k in df.index.levels[0]}

这种产生{'X': {'Feb': -0.06157474257929787, 'Jan': 1.366478487212244},'Y': ...}


任何帮助表示赞赏。


吃鸡游戏
浏览 90回答 2
2回答

潇潇雨雨

对我来说,我找到的解决方案是在一段代码下面(假设 group_data 保存已经按 DataFrame 上的数据分组的数据)。group_dict = {k: group_data[k].to_dict() for k in group_data.index.levels[0]}group_list = []for k, v in group_dict.items():    dict = {'label': k, 'data': v}    group_list.append(dict)

BIG阳

'data':[{'label': 'X', 'data': ['Jan': 1.366478, 'Feb': -0.061575]}, ... ]这是一个无效的 json。内部列表没有意义
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python