在datafram中使用groupby和shift运算计算条件概率

2024-09-24 22:32:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含患者和他们就诊的数据框,他们左眼和/或右眼存在的疾病用{0,1}值标记(0=不存在,1=存在)。数据集如下所示:

Patient   R L

P_1       0 1

P_1       1 1

P_1       0 1

P_1       0 1

P_1       0 1

P_2       1 1

P_2       0 1

P_2       0 1

P_2       1 1

P_3       0 0

P_3       1 1

P_3       0 0

P_3       0 1

P_3       1 1

P_3       0 1

and so on.....

例如,我如何用grouby和shift操作优雅地计算p(R=1 | L=1)的条件概率


Tags: and数据标记患者shiftsoon概率
1条回答
网友
1楼 · 发布于 2024-09-24 22:32:55

IIUC公司:

df.groupby('L').R.mean()

给予

L
0    0.000000
1    0.384615
Name: R, dtype: float64

所以答案是:P(R=1|L=1) = 0.384,和P(R=1|L=0) = 0

或者如果我们想得到病人的概率:

df.groupby(['Patient','L']).R.mean()

提供:

Patient  L
P_1      1    0.2
P_2      1    0.5
P_3      0    0.0
         1    0.5
Name: R, dtype: float64

例如,P(R=1|Patent=P_3, L=1) = 0.5

相关问题 更多 >