Pandas - Conditional Probability of a given specific b

后端 未结 5 1127
孤独总比滥情好
孤独总比滥情好 2021-01-03 02:32

I have DataFrame with two columns of \"a\" and \"b\". How can I find the conditional probability of \"a\" given specific \"b\"?

df.groupby(\'a\').groupby(\         


        
5条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-03 03:03

    You could try this function,

    def conprob(pd1,pd2,transpose=1):
        if transpose==0:
            table=pd.crosstab(pd1,pd2)
        else:
            table=pd.crosstab(pd2,pd1)
        cnames=table.columns.values
        weights=1/table[cnames].sum()
        out=table*weights
        pc=table[cnames].sum()/table[cnames].sum().sum()
        table=table.transpose()
        cnames=table.columns.values
        p=table[cnames].sum()/table[cnames].sum().sum()
        out['p']=p
        return out
    

    This return de conditional probability P( row |column )

提交回复
热议问题