大熊猫的概率

用户7316221

我有一个简单的数据框,如下所述。

如何计算在一个发生的概率Column_1根据Column_2Column_3

Column_1 是一个结果(一个或零)。

Column_2 Column_3 是一种分类。

因此,第一行对于LM型居住在带有汽车的A号楼的人来说意味着1。

Column_1 Column_2 Column_3
 1        A         LM
 1        B         LO    
 0        C         LP
 1        D         LM
 0        A         LK
 1        A         LM 

如果我理解正确的结果可能是

    LM    LO    LP    LK
A  .33                0
B              .167
C               0
D  .167
耶斯列尔

您可以使用pivot_table

print (df.pivot_table(index='Column_2', 
                      columns='Column_3', 
                      values='Column_1', 
                      aggfunc='sum', 
                      fill_value=0))
Column_3  LK  LM  LO  LP
Column_2                
A          0   2   0   0
B          0   0   1   0
C          0   0   0   0
D          0   1   0   0

用另一种解决方案groupbyunstack

df1 = df.groupby(['Column_2','Column_3'])['Column_1'].sum().unstack(fill_value=0)
print (df1)
Column_3  LK  LM  LO  LP
Column_2                
A          0   2   0   0
B          0   0   1   0
C          0   0   0   0
D          0   1   0   0

最后你可以通过划分-它div lengthindexlengthdf

print (df1.div(len(df.index)))
Column_3   LK        LM        LO   LP
Column_2                              
A         0.0  0.333333  0.000000  0.0
B         0.0  0.000000  0.166667  0.0
C         0.0  0.000000  0.000000  0.0
D         0.0  0.166667  0.000000  0.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章