HR
САД
DBP
SepsisLabelPatientID
92
120
< td style="text-align: right;">80
0
0
98
115
85
0
0
93
125
< td style="text-align: right;">75
0
0
95
130
90
0
1
102
120
< td style="text-align: right;">80
1
1
109
115
75
1
1
94
135
< td style="text-align: right;">100
0
2
97
100
70
0
2
85
120
< td style="text-align: right;">80
0
2
88
115
75
0
3
93
125
< td style="text-align: right;">85
1
3
78
130
90
1
3
115
140
< td style="text-align: right;">110
0
4
102
120
80
0
4
98
140
< td style="text-align: right;">110
0
4
Я хочу создать новый DataFrame, который включает только те строки, где SepsisLabel имеет значение 1, и, следовательно, исключает строки с PatientID, у которых нет SepsisLabel, равного 1.
Например, PatientID 0, 2 и 4 не имеют SepsisLabel со значением 1, поэтому они не должны появляться в новом DataFrame. Должны быть включены только идентификаторы PatientID 1 и 3, которые имеют хотя бы одну строку с SepsisLabel, равным 1.
Как я могу добиться этого в Python с помощью pandas?
Вот моя первоначальная попытка, но я не уверен, правильна ли она или оптимальна:
Код: Выделить всё
# My initial attempt
filtered_df = df[df['SepsisLabel'] == 1]
result_df = df[df['PatientID'].isin(filtered_df['PatientID'].unique())]
Подробнее здесь: https://stackoverflow.com/questions/673 ... -condition