假设我们有以下示例数据:
列1 | 列2 |
---|---|
A | 1 |
B | 2 |
C | 3 |
A | 4 |
C | 5 |
B | 6 |
我们想按列1中的子数组分组,创建一个变量深度的子集,最终输出结果如下:
{ "A": { "1": {}, "4": {} }, "B": { "2": {}, "6": {} }, "C": { "3": {}, "5": {} } }
这里是一个示例代码,用于解决此问题:
data = [
{'col1': 'A', 'col2': 1},
{'col1': 'B', 'col2': 2},
{'col1': 'C', 'col2': 3},
{'col1': 'A', 'col2': 4},
{'col1': 'C', 'col2': 5},
{'col1': 'B', 'col2': 6},
]
result = {}
for row in data:
current_level = result
for subcolumn in row['col1']:
current_level = current_level.setdefault(subcolumn, {})
current_level[row['col2']] = {}
print(json.dumps(result, indent=2))
该代码使用字典实现了一个多层嵌套的数据结构。它遍历数据中的每一行,将列1中的每个字符作为一个层级,在字典中创建一个嵌套结构。最后,在最底层的嵌套结构中添加一个空字典,作为最终子集的末尾。最终结果通过json.dumps()函数以良好的格式输出。
注意:如果想要按列1的顺序排序,请先对数据进行排序。
上一篇:按列中的字符位置进行Bash排序
下一篇:按列中的子字符串对数据框进行掩码