使用Pandas数据帧中的groupby和shift操作计算条件概率

时间:2019-05-28 12:45:16

标签: python pandas probability

我有一个与患者及其就诊相关的数据框,其左眼和/或右眼中存在某种疾病,并标有{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)的条件概率?

1 个答案:

答案 0 :(得分:2)

IIUC:

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

给予

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

答案是P(R=1|L=1) = 0.384P(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