我有5864 名 ICU 患者的時間序列資料,我的資料框是這樣的。每一行是各個患者在特定時間的 ICU 停留時間。
| 人力資源 | 收縮壓 | 血壓計 | 伊庫洛斯 | 敗血癥 | P_ID |
|---|---|---|---|---|---|
| 92 | 120 | 80 | 1 | 0 | 0 |
| 98 | 115 | 85 | 2 | 0 | 0 |
| 93 | 125 | 75 | 3 | 1 | 0 |
| 95 | 130 | 90 | 4 | 1 | 0 |
| 102 | 120 | 80 | 1 | 0 | 1 |
| 109 | 115 | 75 | 2 | 0 | 1 |
| 94 | 135 | 100 | 3 | 0 | 1 |
| 97 | 100 | 70 | 4 | 1 | 1 |
| 85 | 120 | 80 | 5 | 1 | 1 |
| 88 | 115 | 75 | 6 | 1 | 1 |
| 93 | 125 | 85 | 1 | 0 | 2 |
| 78 | 130 | 90 | 2 | 0 | 2 |
| 115 | 140 | 110 | 3 | 0 | 2 |
| 102 | 120 | 80 | 4 | 0 | 2 |
| 98 | 140 | 110 | 5 | 1 | 2 |
我想根據患者 ID 選擇膿毒癥 = 1(僅限第一小時)的 ICULOS。就像在 P_ID = 0,膿毒癥 = 1 在 ICULOS = 3 中一樣。我使用以下代碼對單個患者(只有單個患者的資料的資料框)進行了此操作:
x = df[df['Sepsis'] == 1]["ICULOS"].values[0]
print("ICULOS at which Sepsis Label = 1 is:", x)
# Output
ICULOS at which Sepsis Label = 1 is: 46
如果我想為每個 P_ID 檢查它,我必須這樣做 5864 次。有人可以使用回圈幫助我撰寫代碼嗎?回圈將轉到每個 P_ID,然后給出 Iculos 的結果,其中 Sepsis = 1。期待幫助。
uj5u.com熱心網友回復:
for x in df['P_ID'].unique():
print(df.query('P_ID == @x and Sepsis == 1')['ICULOS'][0])
uj5u.com熱心網友回復:
首先,過濾具有Sepsis=1的行。它將自動過濾沒有 Sepsis 為 1 的 P_ID。因此,您將有更少的患者需要迭代。
df1 = df[df.Sepsis==1]
for pid in df.P_ID.unique():
if pid not in df.P_ID:
print("P_ID: {pid} - it has no iclus at Sepsis Lable = 1")
else:
iclus = df1[df1.P_ID==pid].ICULOS.values[0]
print(f"P_ID: {pid} - ICULOS at which Sepsis Label = 1 is: {iclus}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362553.html
