我正在尝试在df中创建一个新列。我希望新列等于每个唯一'mother_ID
的行数,这是df中的不同列
这就是我目前正在做的。它创建了新列,但新列中填充了“NaN”
df.columns = ['mother_ID', 'date_born', 'mother_mass_g', 'hatchling_masses_g']
df.to_numpy()
这是我打印原始df时的显示方式:
count = df.groupby('mother_ID').hatchling_masses_g.count()
df['count']= count
下面的图片显示了我打印新df时得到的结果,尽管如果我只是print(count)
,我会得到每个mother_ID
的正确计数。有人知道我做错了什么吗
使用^{} :
注意^{} 和^{} 与
'count'
之间的区别样本数据:
groupby.count
请注意,只有两行。当分配回数据帧时,有10行,这意味着pandas不知道如何将数据重新对齐。这将导致
NaN
s表示缺少数据:它试图在索引中找到'a'和'b',因为它无法找到,所以它只能用
NaN
值填充groupby.tranform('count')
另一方面
transform
将使用以下计数填充整个组:counts
:注意,创建了10行(数据框中每行一行):
这将很好地分配回数据帧(因为索引对齐):
如果需要,可以通过^{} 进行计数,然后^{} 返回到组键上的数据帧:
counts
:df
:相关问题 更多 >
编程相关推荐