假设我有一个数据框,每个主题有多行。每一行都是受试者经历的不良事件,以及指示特定不良事件是相关、严重还是 sae:
subject_id related severe sae
05-218 True False False
05-218 True True False
05-218 False False False
05-010 False False False
05-010 True False False
05-010 True False False
05-010 False False False
我试图最终得到的是一个结果数据框,每个主题有一行,指示该主题是否经历过相关的、严重的或 sae。结果如下:
subject_id related severe sae
05-218 True True False
05-010 True False False
我愣住了怎么办!任何帮助,不胜感激。
谢谢!
使用max
df.groupby('subject_id',as_index=False).max()
Out[357]:
subject_id related severe sae
0 05-010 True False False
1 05-218 True True False
使用GroupBy.any
:
df = df.groupby('subject_id', sort=False).any()
print (df)
related severe sae
subject_id
05-218 True True False
05-010 True False False
df1 = df.groupby('subject_id', sort=False).any().reset_index()
print (df1)
subject_id related severe sae
0 05-218 True True False
1 05-010 True False False