将列数据帧的值分组为 JSON

Groupby values of dataframe of columns into JSON

class_id class code id
8 XYZ A 1
8 XYZ B 2
9 ABC C 3

我有一个像上面这样的数据框。我想对其进行转换,以便下面的 'codes' 列将所有唯一的 (code, id) 对收集到 class 包含的 JSON 格式。

class_id class codes
8 XYZ [{'code: 'A', 'id': 1}, {'code': 'B', 'id': 2}]
9 ABC [{'code: 'C', 'id': 3}]

您可以在传递使用 to_dict 方法的 lambda 的地方使用 groupby.apply

out = df.groupby(['class_id','class'])[['code','id']].apply(lambda x: x.to_dict('records')).reset_index(name='codes')

输出:

   class_id class                                             codes
0         8   XYZ  [{'code': 'A', 'id': 1}, {'code': 'B', 'id': 2}]
1         9   ABC                          [{'code': 'C', 'id': 3}]