好吧,可以这么说,我有一个df,它是不同房屋中动物的频率:
fprintf
现在让我们说我不在乎哪个家庭,我只想按频率显示每只动物的均值,所以我得到了均值:
Animal Frequency
0 Dog 5
1 Cat 7
2 Cat 2
3 Fish 2
4 Dog 8
现在,这给了我一个系列(或我实际较大的df中的数据框),其索引是不同的动物:
mean = df.groupby(['Animal']).mean()
现在我只希望我的原始df是:
Frequency
Dog 6.5
Cat 4.5
Fish 2
尝试使用嵌入式for循环(请记住我的实际项目,均值返回的不是一个序列的数据框):
Animal Frequency
0 Dog 6.5
1 Cat 4.5
2 Cat 4.5
3 Fish 2
4 Dog 6.5
上面的代码只是无限期地运行,实际的数据帧非常大。
答案 0 :(得分:1)
使用GroupBy.transform
以便在与均值相加后保留原始形状:
df['Frequency'] = df.groupby('Animal').transform('mean')
输出
Animal Frequency
0 Dog 6.5
1 Cat 4.5
2 Cat 4.5
3 Fish 2.0
4 Dog 6.5