如何计算所有可能的列对的条件概率?

2024-05-15 04:38:04 发布

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

我在pandas中有以下布尔数据帧:

      Cat  Dog  Mouse
Alex   1    0     1
Lola   0    0     1
Bob    1    1     1

每个单元格都包含真假,表示某人是否有动物。 我想得到数据帧,它包含每对动物的条件概率,其中行表示条件

      Cat  Dog  Mouse
Cat    1   50%    1
Dog    1    1     1
Mouse 66%  33%    1

在熊猫身上有没有快速的方法?如果是的话,怎么办


Tags: 数据方法pandas概率条件catbob动物
2条回答

如果您正在寻找使用pandas的“oneliner”解决方案……请查看pandas.crosstab

pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)

您可以在df和转置df之间使用点积,并以百分比计算秩:

df.T.dot(df).rank(axis=1,method='dense',pct=True).round(3)

         Cat    Dog  Mouse
Cat    1.000  0.500    1.0
Dog    1.000  1.000    1.0
Mouse  0.667  0.333    1.0

相关问题 更多 >

    热门问题