如何计算数据框架pandas-python中的条件概率? [英] How to calculate conditional probability of values in dataframe pandas-python?

查看:1469
本文介绍了如何计算数据框架pandas-python中的条件概率?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想计算评级栏中的条件概率(A,B,C)。

 公司型号评级类型
0 ford mustang A coupe
1 chevy camaro B coupe
2福特节日C轿车
3 ford焦点A轿车
4福特金牛座B轿车
5丰田camry B轿车

输出:

  Prob(rating = A)= 0.333333 
Prob (rating = B)= 0.500000
Prob(rating = C)= 0.166667

Prob(type = coupe | rating = A)= 0.500000
Prob(type = sedan | rating = A)= 0.500000
Prob(type = coupe | rating = B)= 0.333333
Prob(type = sedan | rating = B)= 0.666667
Prob(type = coupe | rating = C )= 0.000000
Prob(type = sedan | rating = C)= 1.000000

任何帮助,谢谢.. !!

解决方案

您可以使用 .groupby()和内置的 .div()

  rating_probs = df.groupby('rating')。size()。div(len(df))

评分
A 0.333333
B 0.500000
C 0.166667

和条件概率:


$ ()()。div(len(df))。div(rating_probs,axis = 0, level ='rating')

coupe A 0.500000
B 0.333333
轿车A 0.500000
B 0.666667
C 1.000000


I want to calculate conditional probabilites of ratings('A','B','C') in ratings column.

    company     model    rating   type
0   ford       mustang     A      coupe
1   chevy      camaro      B      coupe
2   ford       fiesta      C      sedan
3   ford       focus       A      sedan
4   ford       taurus      B      sedan
5   toyota     camry       B      sedan

Output:

Prob(rating=A) = 0.333333 
Prob(rating=B) = 0.500000 
Prob(rating=C) = 0.166667 

Prob(type=coupe|rating=A) = 0.500000 
Prob(type=sedan|rating=A) = 0.500000 
Prob(type=coupe|rating=B) = 0.333333 
Prob(type=sedan|rating=B) = 0.666667 
Prob(type=coupe|rating=C) = 0.000000 
Prob(type=sedan|rating=C) = 1.000000 

Any help, Thanks..!!

解决方案

You can use .groupby() and the built-in .div():

rating_probs = df.groupby('rating').size().div(len(df))

rating
A    0.333333
B    0.500000
C    0.166667

and the conditional probs:

df.groupby(['type', 'rating']).size().div(len(df)).div(rating_probs, axis=0, level='rating')

coupe  A         0.500000
       B         0.333333
sedan  A         0.500000
       B         0.666667
       C         1.000000

这篇关于如何计算数据框架pandas-python中的条件概率?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆