【发布时间】:2017-04-18 19:12:34
【问题描述】:
我有一个 Pandas 数据框。在它的众多列中,有 ID,它是布尔值,Quarter,它给出了年份和季度(例如 2016Q1)和状态(例如 TX,CA),所以它看起来像:
id Quarter State
True 15Q1 AZ
False 17Q1 WY
True 14Q2 NH
False 15Q1 AZ
我正在尝试构建一个数据透视表,其中 ID 作为值,State 作为索引,Quarter 作为列。我想使用np.mean 作为agg_func 但我得到DataError: No numeric types to aggregate
当我使用 count 作为聚合函数时,它会正确显示。当我汇总np.mean(df['id']) 的总数时,我得到.64,这正是我正在寻找的输出类型,除了更聚合而不是粒度。那么为什么np.sum 在那里工作,但当我将它用作数据透视表中的聚合函数时却不行?如何让它工作。
我想我可以将 True 和 False 转换为 1 和 0,但我不希望这样做,因为我实际上有很多“id”列我想要聚合这边。
编辑:所以这个问题只会出现在我的完整数据集上,而不是我用作示例的玩具数据集上。我又玩了一些,如果我用平均值作为“年份”或“状态”上的聚合函数进行分组,ValueError: No objects to concatenate 仍然会弹出。当我尝试df['id'].describe()
以前有人遇到过这样的问题吗?
【问题讨论】:
标签: python-3.x pandas numpy boolean