簡體   English   中英

從數據框中獲取字典的有效方法

[英]An efficient way to get dictionary from dataframe

我有以下數據框:

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

什么是獲取字典的有效方法,該字典的關鍵字是城市,值是名稱,即:

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

我正在考慮使用df.groupby('City')

您可以使用GroupBy.applyto_dict

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

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'}}

要在“名稱”列中創建帶有集合的DataFrame,可以使用groupby/apply

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

你可以做

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM