分组后保留形状

时间:2019-03-29 12:08:11

标签: python pandas pandas-groupby

好吧,可以这么说,我有一个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

上面的代码只是无限期地运行,实际的数据帧非常大。

1 个答案:

答案 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