Создать словарь из серии панда с несколькими значениями - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть pd dataframe, как показано ниже:

df=pd.DataFrame([['A',1],['A',3],['B',2],['B',5],['C',8]],columns=['k','v'])

И я хотел бы создать следующий словарь:

{'A':[1,3],
 'B':[2,5],
 'C':[8]
}

В настоящее время я делаю это с:

from collections import defaultdict


my_dict=defaultdict(list)

for key in df.k:
    my_dict[key].append(df['v'][df['k']==key])

Но это неэффективно (очень много времени) для большого df, а также возвращает мне индекс значений, которые мне не нужны.

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете использовать agg здесь:

df.groupby('k').v.agg(list).to_dict()

{'A': [1, 3], 'B': [2, 5], 'C': [8]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...