Word - список словаря - PullRequest
       0

Word - список словаря

0 голосов
/ 28 января 2020

Вот мой фрейм данных

    drug        reaction     
0   OMALIZUMAB  Forced expiratory volume decreased  
1   OMALIZUMAB  Upper limb fracture 
2   OMALIZUMAB  Blood pressure abnormal 
3   OMALIZUMAB  Forced expiratory volume decreased  
4   OMALIZUMAB  Anxiety 
5   OMALIZUMAB  Asthma  
6   OMALIZUMAB  Fall    
7   NITROGLYCERIN   Product substitution issue  
8   OMALIZUMAB  Patella fracture    
9   OMALIZUMAB  Anxiety 

То, что я хочу, - это словарь реакции препарата. Существует несколько реакций на лекарство.

, поэтому выведите то, что мне нужно:

{drug : [reaction], drug: [reaction], ...}

Пример - это только часть фрейма данных, а реальные данные больше, чем ex (600,000rows)

Как получить желаемый результат?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Использовать defaultdict с опцией списка для группировки элементов на основе ключей.
В этом случае ключи взяты из столбца с наркотиками

from collections import defaultdict
d=defaultdict(list)

Используйте понимание списка, чтобы ускорить его

[d[i].append(j) for i,j in zip(df.drug, df.reaction)]

print(d)

defaultdict(list,
        {'OMALIZUMAB': ['Forced expiratory volume decreased',
          'Upper limb fracture',
          'Blood pressure abnormal',
          'Forced expiratory volume decreased',
          'Anxiety',
          'Asthma',
          'Fall',
          'Patella fracture',
          'Anxiety'],
         'NITROGLYCERIN': ['Product substitution issue']})
0 голосов
/ 28 января 2020

Возможно, ответы в этом вопросе тоже подойдут вам;

Игнорирование NaN с str.contains

Вы можете попробовать команду ниже со ссылкой на ответ Harry_pb.

df[df['dr.prod_ai'].str.contains("foo") == True]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...