我.size()在groupby结果上使用,以便计算每个组中有多少个项目。
.size()
我希望将结果保存到新的列名中,而无需手动编辑列名数组,怎么办?
这是我尝试过的:
grpd = df.groupby(['A','B']) grpd['size'] = grpd.size() grpd
和我得到的错误:
TypeError:“ DataFrameGroupBy”对象不支持项目分配(在第二行)
的结果df.groupby(...)不是DataFrame。要取回DataFrame,必须对每个组应用一个函数,变换组中的每个元素,或过滤组。
df.groupby(...)
似乎您想要一个包含(1)所有原始数据df和(2)每组中有多少数据的计数的DataFrame 。这些东西的长度不同,因此,如果它们需要放入相同的DataFrame中,则需要冗余地列出大小,即每个组中的每一行。
df
df['size'] = df.groupby(['A','B']).transform(np.size)
(此外:如果您可以显示简洁的样本输入和预期结果,这将很有帮助。)