为了账号安全,请及时绑定邮箱和手机立即绑定

分组后保留形状

分组后保留形状

素胚勾勒不出你 2021-12-21 17:28:32
好吧,假设我有一个 df 是不同房屋中动物的频率:   Animal  Frequency0  Dog     51  Cat     72  Cat     23  Fish    24  Dog     8现在假设我不关心哪个家庭,我只想在频率下显示每只动物的平均值,所以我得到了平均值:mean = df.groupby(['Animal']).mean()现在这给了我一个系列(或我实际更大的 df 中的数据框),索引作为不同的动物:      FrequencyDog     6.5Cat     4.5Fish    2现在我只希望我原来的 df 是:   Animal  Frequency0  Dog     6.51  Cat     4.52  Cat     4.53  Fish    24  Dog     6.5尝试使用嵌入式 for 循环(请记住我的实际项目,平均值返回数据帧而不是系列):for idx in df.index:    for item in mean.Animal:            if df.Animal[idx] == mean.Animal[item]:            df.at[idx, 'Frequency'] = mean.at[item, 'Frequency']上面的代码只是无限期地运行,实际的数据帧非常大。
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

用于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


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信