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