Сокращение DataFrame с большим количеством строк на тему до одной строки на тему - PullRequest
0 голосов
/ 25 октября 2018

Предположим, у меня есть фрейм данных, который имеет несколько строк на тему.Каждая строка представляет собой неблагоприятное событие, испытываемое субъектом, а также флаг, указывающий, было ли это конкретное неблагоприятное событие связанным, тяжелым или 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

В результате я пытаюсь получить результатфрейм данных, который имеет одну строку для каждого субъекта, указывающую, испытывал ли этот субъект когда-либо связанный, тяжелый или другой.В результате чего-то вроде этого:

subject_id    related    severe   sae
05-218         True      True     False
05-010         True      False    False

Я в тупике, что делать!Любая помощь приветствуется.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Использование 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
0 голосов
/ 25 октября 2018

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...