【问题标题】:Python count all boolean values in pivot tablePython计算数据透视表中的所有布尔值
【发布时间】:2017-03-09 11:16:21
【问题描述】:

有人知道如何计算数据透视表中的所有布尔值(包括假值)吗?

passed_exam 是一列布尔值。

这段代码只为真值执行任务,这很棒:

table = pd.pivot_table(df,index=["student","semester"], values=["passed_exam"],aggfunc=np.sum)

但我还想要一个计算所有布尔值的列。

提前谢谢你!

【问题讨论】:

  • 取反表,做同样的事情,添加两个值?

标签: python pandas pycharm


【解决方案1】:

我认为你需要groupbysize,最后由unstack 重塑:

df = pd.DataFrame({'student':['a'] * 4 + ['b'] * 6,
                   'semester':[1,1,2,2,1,1,2,2,2,2],
                   'passed_exam':[True, False] * 5})

print (df)
  passed_exam  semester student
0        True         1       a
1       False         1       a
2        True         2       a
3       False         2       a
4        True         1       b
5       False         1       b
6        True         2       b
7       False         2       b
8        True         2       b
9       False         2       b

table = df.groupby(["student","semester","passed_exam"])
          .size()
          .unstack(fill_value=0)
          .rename_axis(None, axis=1)
          .reset_index()
print (table)
  student  semester  False  True
0       a         1      1     1
1       a         2      1     1
2       b         1      1     1
3       b         2      2     2

【讨论】:

  • 非常感谢!可以不重复a和b吗?我的意思是在第一行有一个,然后在第二行空白?结果总是得到一个数据框
  • 当然,您可以使用示例数据、所需输出和您尝试的内容创建新问题吗?谢谢。
  • 并使用我的示例,没问题,或者您可以根据需要更改它。也许帮助how to provide a great pandas example
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 2019-05-09
  • 2012-09-27
  • 1970-01-01
  • 2018-06-24
相关资源
最近更新 更多