从datafram获取字典的一种有效方法

2024-06-23 18:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下数据帧:

           City     Name
    0   Seattle    Alice
    1   Seattle      Bob
    2  Portland  Mallory       
    3  Portland      Bob

获取关键字为城市、值为名称的词典的有效方法是什么,即:

dict = {'Seattle': {'Alice','Bob'}, 'Portland': {'Mallory','Bob'}}

我在考虑用数据框groupby(“城市”)


Tags: 数据方法name名称city关键字dict词典
3条回答

你能做到的

dict(df.groupby('City')['Name'].apply(list))

df.groupby('City')是一个迭代器。您可以在dict理解中使用它来生成所需的dict:

In [84]: {city:set(grp['Name'].tolist()) for city, grp in df.groupby('City')}
Out[84]: {'Portland': {'Bob', 'Mallory'}, 'Seattle': {'Alice', 'Bob'}}

要创建名称列中包含集合的数据帧,可以使用groupby/apply

In [91]: df.groupby('City')['Name'].apply(set).reset_index()
Out[91]: 
       City            Name
0  Portland  {Bob, Mallory}
1   Seattle    {Alice, Bob}

您可以使用GroupBy.applyto_dict

df.groupby('City')['Name'].apply(set).to_dict()

相关问题 更多 >

    热门问题