【发布时间】:2023-02-13 20:54:24
【问题描述】:
我正在尝试创建一个嵌套的 JSON 块并遇到了这个很棒的解决方案Pandas grouping by multiple columns to get a multi nested Json:
test = [df.groupby('cat_a')\
.apply(lambda x: x.groupby('cat_b')\
.apply(lambda x: [x.groupby('cat_c')
.apply(lambda x: x[['participants_actual','participants_registered']].to_dict('r')
).to_dict()]
).to_dict()
).to_dict()]
import json
json_res = list(map(json.dumps, test))
这对我的用例很有效。但是,由于我无法在所有情况下控制数据框,因此可能不止此处提到的三个级别。
我可以很容易地想象得到如下水平:
for c in cols[:-2]:
.... perform level gropuping
但是,由于每个 lamba 和 apply 函数都进入了上面的级别,我不确定如何在 for 循环中编写这样的语句。
有没有办法让这个声明更有活力?
【问题讨论】: