小编典典

如何为size()列分配名称?

python

.size()在groupby结果上使用,以便计算每个组中有多少个项目。

我希望将结果保存到新的列名中,而无需手动编辑列名数组,怎么办?

这是我尝试过的:

grpd = df.groupby(['A','B'])
grpd['size'] = grpd.size()
grpd

和我得到的错误:

TypeError:“ DataFrameGroupBy”对象不支持项目分配(在第二行)


阅读 151

收藏
2020-12-20

共1个答案

小编典典

的结果df.groupby(...)不是DataFrame。要取回DataFrame,必须对每个组应用一个函数,变换组中的每个元素,或过滤组。

似乎您想要一个包含(1)所有原始数据df和(2)每组中有多少数据的计数的DataFrame
。这些东西的长度不同,因此,如果它们需要放入相同的DataFrame中,则需要冗余地列出大小,即每个组中的每一行。

df['size'] = df.groupby(['A','B']).transform(np.size)

(此外:如果您可以显示简洁的样本输入和预期结果,这将很有帮助。)

2020-12-20