单词-列表字典

时间:2020-01-28 05:53:37

标签: python pandas list dataframe dictionary

这是我的数据框

    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,000行)

如何获得想要的结果?

2 个答案:

答案 0 :(得分:0)

也许这个问题的答案也可以为您服务;

Ignoring NaNs with str.contains

您可以尝试参考Harry_pb的答案使用以下命令。

df[df['dr.prod_ai'].str.contains("foo") == True]

答案 1 :(得分:0)

使用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']})