要查找
b每个类实例的类总数,
a您可以执行
df.groupby('a').b.value_counts()例如,创建如下的Dataframe:
df = pd.Dataframe({'A':['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'], 'B':['one', 'one', 'two', 'three','two', 'two', 'one', 'three'], 'C':np.random.randn(8), 'D':np.random.randn(8)}) A B C D0 foo one -1.565185 -0.4657631 bar one 2.499516 -0.9412292 foo two -0.091160 0.6890093 bar three 1.358780 -0.0620264 foo two -0.800881 -0.3419305 bar two -0.236498 0.1986866 foo one -0.590498 0.2813077 foo three -1.423079 0.424715然后:
df.groupby('A')['B'].value_counts()Abar one 1 two 1 three 1foo one 2 two 2 three 1要将其转换为条件概率,需要除以每个组的总大小。
您可以与另一个groupby一起使用:
df.groupby('A')['B'].value_counts() / df.groupby('A')['B'].count()Abar one 0.333333 two 0.333333 three 0.333333foo one 0.400000 two 0.400000 three 0.200000dtype: float64或者,您可以将
lambda功能应用于组:
df.groupby('a').b.apply(lambda g: g.value_counts()/len(g))


