首页 > 解决方案 > 带有“大小”的 Pandas 数据透视表聚合给出错误“‘系列’对象没有属性‘列’”

问题描述

我有以下数据框:

df = pd.DataFrame({'foo': [1, 3, 3, 4],
                   'bar': [2, 5, 8, 9],
                   'abc': [3, 7, 2, 4]})

当我尝试使用命令时:

df.pivot_table('bar', 'foo', aggfunc='size')

我得到错误:

AttributeError:“系列”对象没有属性“列”

奇怪的是,当我同时聚合几列时,问题就消失了:

df.pivot_table(['bar', 'abc'], 'foo', aggfunc='size')

但是如果我添加“dropna=False”参数,它会再次出现:

df.pivot_table(['bar', 'abc'], 'foo', aggfunc='size', dropna=False)

预期输出(我使用第二个命令成功获得):

foo
1    1
3    2
4    1
dtype: int64

顺便说一句,我故意使用“大小”而不是“计数”,因为我想知道包括NaN 值在内的组大小(即使在这个最小的示例中没有显示它,因为显然 NaN 的存在不是触发错误所必需的)。

我的熊猫版本是 0.25.1。谁能解释这种行为?

标签: pythonpandasaggregateattributeerror

解决方案


推荐阅读