假设我有一个数据框,每个主题有多行。每一行都是受试者经历的不良事件以及标记,该标记表明该特定不良事件是相关的,严重的还是严重的:
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
我想要最终得到的是一个结果数据框,每个主题有一行,表明该主题曾经是否经历过相关,严重或严重性。结果是这样的:
subject_id related severe sae
05-218 True True False
05-010 True False False
我对要做的事情感到困惑!任何帮助表示赞赏。
谢谢!
答案 0 :(得分:3)
使用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
答案 1 :(得分:3)
使用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