我有一个数据框
id key
a1 1
a2 1
a3 1
a4 2
a5 2
a6 3
我想创建一本字典key
作为机器号,并且id
列作为列表
like:
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
我可以先使用 groupby 然后再使用 .to_dict 吗?
我相信您需要列出以下广告价值dict
- use groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html + apply http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.apply.html + to_dict http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.to_dict.html:
d = df.groupby('key')['id'].apply(list).to_dict()
print (d)
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
或者如果需要的话list
与标量相加if/else
to 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'}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)