簡體   English   中英

Pandas 和字典:如何獲取每個鍵的所有唯一值?

[英]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.

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