按对象行为分组

2024-10-06 11:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我对熊猫群居的行为感到困惑。我刚刚从0.2.5版切换到1.2.3版,我的代码不再具有相同的行为

在版本0.2.5中,当我执行groupby多列时,结果为0的所有行基本上都被删除。但在我使用的最新版本中,我得到了来自每列的所有唯一值都被分组,从而导致许多行显示为0

代码示例:

df.groupby(['ColumnA', 'ColumnB'])['ColumnC'].count()

结果为0.2.5:

列A |列B |计数结果

结果为1.2.3:
A列-值1 | B列-值1 | 2
A列-值1 | B列-值2 | 0
A列-值2 | B列-值1 | 0
A列-值2 | B列-值2 | 0

这就产生了许多不必要的线条,这些线条基本上是无用的。当您处理包含数百万行和每列数千个唯一值的大型数据集时,这会变得特别烦人。我如何从我以前的版本中强制执行该行为,因为这意味着我必须重做我创建的许多函数。在不同版本的转换中,我错过了什么


Tags: 数据代码版本示例dfcount线条计数
1条回答
网友
1楼 · 发布于 2024-10-06 11:23:43

它似乎在处理类别,需要参数observed=True以避免将缺少的类别添加到^{}

observed, default False

This only applies if any of the groupers are Categoricals. If True: only show observed values for categorical groupers. If False: show all values for categorical groupers.

df.groupby(['ColumnA', 'ColumnB'], observed=True)['ColumnC'].count()

相关问题 更多 >