这是我的数据框
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行)
如何获得想要的结果?
答案 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']})