给定另外两个变量来计算条件概率

时间:2019-04-21 05:38:55

标签: python pandas

让我们假设我们有一个DataFrame带有一些列,并且我需要找到给定AB(这是{{ 1}})。我该如何计算?

对于一个变量,就是在给定C的情况下找到DataFrame的条件概率,这很简单,我可以这样制作一个A然后是一个B

groupby()

但是,如果我选择2列,则此方法将无效:

value_counts()

因为这不再是df.groupby('A')['B'].value_counts() / df.groupby('A')['B'].count() 对象,而是df.groupby('A')[['B', 'C']] 对象,因此我无法应用SeriesGroupBy函数。

编辑

示例:

这是DataFrameGroupBy的一部分

enter image description here>


如果我想找到某人在其旅行舱中幸存的条件概率,则为以下输出:

enter image description here



现在,我想找到一个人在给定两个变量后才能幸存的条件概率,比如说他的旅行班级和性别。

1 个答案:

答案 0 :(得分:2)

IIUC,只需反转您的groupby模式-按条件分组,然后将value_counts应用于“幸存”:

df.groupby(['pclass', 'sex'])['survived'].value_counts(normalize=True)

如果您需要将输出作为DataFrame,请使用Series.reset_index

df.groupby(['pclass', 'sex'])['survived'].value_counts(normalize=True).reset_index(name='prob')