我有一个数据框如下:
City Name
0 Seattle Alice
1 Seattle Bob
2 Portland Mallory
3 Portland Bob
获取密钥为城市的字典的有效方法是什么,值是名称,即:
dict = {'Seattle': {'Alice','Bob'}, 'Portland': {'Mallory','Bob'}}
我在考虑使用df.groupby('City')
答案 0 :(得分:4)
您可以使用GroupBy.apply
和to_dict
:
df.groupby('City')['Name'].apply(set).to_dict()
答案 1 :(得分:2)
MY_ENV_VAR = myValue
是一个迭代器。您可以在字典理解中使用它来生成所需的字典:
df.groupby('City')
要在“名称”列中创建包含集合的DataFrame,您可以使用In [84]: {city:set(grp['Name'].tolist()) for city, grp in df.groupby('City')}
Out[84]: {'Portland': {'Bob', 'Mallory'}, 'Seattle': {'Alice', 'Bob'}}
:
groupby/apply
答案 2 :(得分:1)
你可以做到
dict(df.groupby('City')['Name'].apply(list))