将每个主题包含许多行的数据帧减少为每个主题一行



假设我有一个数据框,每个主题有多行。每一行都是受试者经历的不良事件,以及指示特定不良事件是相关、严重还是 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

最新更新