我正在处理一些数据,我每小时都会对患者进行观察。在某些情况下,特定患者的某些功能完全是空的。我试图找到一种方法来通过使用恒定平均值来估算数据,该平均值基于具有相同性别和相似年龄的其他 50 名患者的人口子集。我对以下数据进行了简化:
人力资源 | O2Sat | 温度 | 血小板 | 年龄 | 性别 | 患者 ID |
---|---|---|---|---|---|---|
80 | 98 | 36.5 | 钠 | 52 | 1 | A0 |
82 | 96 | 37.0 | 钠 | 52 | 1 | A0 |
82 | 100 | 36.3 | 160 | 53 | 1 | A1 |
90 | 93 | 36.6 | 165 | 53 | 1 | A1 |
83 | 95 | 35.9 | 140 | 23 | 0 | A2 |
79 | 98 | 36.2 | 155 | 23 | 0 | A2 |
88 | 92 | 36.6 | 163 | 60 | 0 | A3 |
90 | 91 | 36.3 | 165 | 60 | 0 | A3 |
81 | 95 | 37.1 | 钠 | 20 | 0 | A4 |
81 | 92 | 36.9 | 钠 | 20 | 0 | A4 |
我已经按年龄对数据框进行了重新排序,并且到目前为止拥有此代码
data = data.sort_values(['Age']).groupby(['PatientID','Gender']).apply(lambda x: x.fillna(x.mean()))
但我知道这将使用所有可用数据来找到平均值,但我不确定如何将其限制为 50 名年龄相近的患者。