将列数据帧的值分组为 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}]
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}]