以下是我的df
:
In [425]: df
Out[425]:
a b c d
0 abc 1 1 True
1 abd 1 1 False
2 abe 1 2 False
3 abf 1 2 True
4 abg 2 2 True
我想对b
和c
列进行分组,并用剩余的列名及其值创建dict
预期输出:
[
{
"b": 1,
"c": 1,
"attr":[
{
"a": "abc",
"d": True
},
{
"a": "abd",
"d": False
}
]
},
{
"b": 1,
"c": 2,
"attr":[
{
"a": "abe",
"d": False
},
{
"a": "abf",
"d": True
}
]
},
{
"b": 2,
"c": 2,
"attr":[
{
"a": "abg",
"d": True
}
]
}
]
我的尝试:
In [423]: df.set_index(['b', 'c']).agg(list, 1).to_dict()
Out[423]: {(1, 1): ['abd', False], (1, 2): ['abf', True], (2, 2): ['abg', True]}
我能够分组并创建dict,但不知道如何将列名与之一起放置
将自定义lambda函数与^{} 中的^{} 一起使用:
如果有多个列,则可选择:
在具有多个组的大型数据帧中的性能:
理解力
相关问题 更多 >
编程相关推荐