我有一個包含 4 個變數的資料集,如下所示:
ID DX1 DX2 DX3
1 Cold Covid Sickle
2 Rash Burn
3 Resp Sore throat
我想撰寫一個代碼,只在資料框中包含某些具有某些診斷的患者。例如,我只需要具有以下任一診斷(感冒和/或 resp)的患者作為他們在 DX1、DX2 或 DX3 中的 DX。例如,輸出將與上述相同,但沒有患者 2。
我知道我可以在下面執行 contains 陳述句,但是如何更改我的代碼以便搜索變數是 DX1 DX2 和 DX3 而不僅僅是 DX1。我也知道我可以將每個 DX 變數連接成一個變數,但很好奇是否有一種更清晰的編碼方法。
DF_v1 = DF[DF.DX1.str.contains("cold|resp", na=False, case=False)]
uj5u.com熱心網友回復:
filter選擇“DX”列,因為.str作用于系列的操作分別應用于每個系列。然后檢查any列是否滿足該行的條件以形成用于切片原始 DataFrame 的布爾掩碼。
m = (df.filter(like='DX')
.apply(lambda col: col.str.contains("cold|resp", na=False, case=False))
.any(axis=1))
df[m]
# ID DX1 DX2 DX3
#0 1 Cold Covid Sickle
#2 3 Resp Sore throat
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333469.html
上一篇:pysparkgroupby并創建包含其他列字典的列
下一篇:Web協議-HTTP協議實作
