Python 熊猫代表基于另一列的特定列(二进制值)

Python 熊猫代表基于另一列的特定列(二进制值),python,python-3.x,pandas,pandas-groupby,pivot-table,Python,Python 3.x,Pandas,Pandas Groupby,Pivot Table,假设我们有这样的东西: df = pd.DataFrame([[0,1,0,13], [1,0,1,14], [1,1,0,12], [1,0,0,15]], columns = ["A", "B" , "C", "p"]) A、 B,C有二进制值,我想计算每列p的平均值,但对每组(1和0)分别计算 对于我使用的一列 df.groupby('A')['p'].mean() 但是如何一次计算ABC列的平均值呢?首先

假设我们有这样的东西:

df = pd.DataFrame([[0,1,0,13], [1,0,1,14], [1,1,0,12], [1,0,0,15]], columns = ["A", "B" , "C", "p"])
A、 B,C有二进制值,我想计算每列p的平均值,但对每组(1和0)分别计算

对于我使用的一列

df.groupby('A')['p'].mean()
但是如何一次计算ABC列的平均值呢?

首先用于unpivot,聚合
平均值,最后添加:

或使用:



应该如何显示预期的输出?完美应该是:两列0和1以及3行A、B、CAnswer被编辑。@jezrael perfect!非常感谢。
df1 = df.melt('p').groupby(['variable', 'value'])['p'].mean().unstack(fill_value=0)
df1 = df.melt('p').pivot_table(index='variable', columns='value', values='p', fill_value=0)
print (df1)
value             0          1
variable                      
A         13.000000  13.666667
B         14.500000  12.500000
C         13.333333  14.000000