2
我有一个数据帧熊猫据帧与dict上多列和值列出
id key
a1 1
a2 1
a3 1
a4 2
a5 2
a6 3
我想创建一个字典,key
机器没有了,id
列清单
,如:
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
我可以先使用groupby然后做.to_dict吗?
我有一个数据帧熊猫据帧与dict上多列和值列出
id key
a1 1
a2 1
a3 1
a4 2
a5 2
a6 3
我想创建一个字典,key
机器没有了,id
列清单
,如:
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
我可以先使用groupby然后做.to_dict吗?
我相信你需要列出的dict
广告值 - 使用groupby
+ apply
+ to_dict
:
d = df.groupby('key')['id'].apply(list).to_dict()
print (d)
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
或者,如果需要list
与标量增加if/else
到apply
:
d = df.groupby('key')['id'].apply(lambda x: list(x) if len(x) > 1 else x.iat[0]).to_dict()
print (d)
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: 'a6'}
使用字典解析围绕groupby
迭代器
{n: v.tolist() for n, v in df.groupby('key').id}
这很好,如果我们有一列,但是,如果我们必须从多列中获取值呢?我遇到过类似的情况。我尝试过使用这个,但没有成功。我认为'地图'会做到这一点,但不知道!如果你愿意,我在这里发布了一个问题:https://stackoverflow.com/questions/46623452/map-two-data-frames-to-create-a-dictionary-with-multiple-values-for-a-key -pand –