[英]Pandas and Dictionary: How to get all unique values for each key?
我想构建一个字典,使键值对中的值是该键的每个唯一值。
考虑这个例子:
df = pd.DataFrame({'id': [1, 2, 3, 1, 2, 3], 'vals': ['a1', 'a2', 'a3', 'a2', 'a2a', 'a3a']})
# only yields last entry
dict(zip(df['id'], df['vals']))
# results
{1: 'a2', 2: 'a2a', 3: 'a3a'}
# expected value
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
利用:
result = df.groupby("id")["vals"].agg(list).to_dict()
print(result)
Output
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
您可以像这样使用字典理解:
{k: group['vals'].tolist() for k, group in df.groupby('id')}
哪个输出
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
print(df.groupby('id')['vals'].apply(lambda x: x.tolist()).to_dict())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.