当前位置: 首页 > 知识库问答 >
问题:

熊猫:从Groupby创建一个数据帧,并在不同的列上应用和和平均值[重复]

司允晨
2023-03-14

我有以下数据帧

      medal      number Age 
      Gold        5     25
      Silver      4     30
      Bronze      3     45
      Gold        1     23
      Silver      2     12
      Bronze      3     16

并且,我试图通过对奖牌分组,得到“数字”和“年龄”的平均值。我可以用两条线做,但是如何用熊猫Groupby单线做。

我可以一次做一个手术

df.groupby(['medal'])['Age'].mean()

或者

df.groupby(['medal'])['number'].sum()

然后可能合并,这是一个漫长的过程。那么如何以这种方式实现呢

下面是所需的输出

       medal   number   Age
      Bronze     6      30.5
      Gold       6      24.0
      Silver     6      21.0

共有2个答案

米丰
2023-03-14

使用groupby上的agg方法和字典,如下所示:

df.groupby(['medal']).agg({'number': 'sum', 'Age':'mean'})
牧璞
2023-03-14

通过字典聚合具有聚合函数的列名称,并在输出DataFrame中为列添加as_index=False

df1 = df.groupby('medal', as_index=False).agg({'Age': 'mean','number':'sum'})
print (df1)
    medal   Age  number
0  Bronze  30.5       6
1    Gold  24.0       6
2  Silver  21.0       6
 类似资料:
  • 我有两个熊猫数据帧共享一个共同的列名。我想合并公共列名,但保留与第二个dataFrame中的所有不同列,其中公共列名称匹配。下面是两个数据帧的示例: 我希望预期的结果是: 也就是说,当列“A”匹配时,我希望保留I,J,K,L的行,并且不等于“NaN ”,对于DF1中的列也是如此。 我已经尝试了所有的pd.merge选项,但是它们似乎没有做我上面要求的事情。例如, 在“A”上匹配并将所有键保留在左侧

  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:

  • 我是新来的。任何帮助都将不胜感激 这是我的原始数据: 我想得到的是: 1创建一个新的列调用平均值,以计算每个提要的平均市值。 2求加权平均数。 这是我当前的代码,我得到NaN: 对于加权平均代码: 我得到了一个错误: AttributeError:“Series”对象没有属性“value”

  • 我肯定错过了一些简单的东西。尝试合并熊猫中的两个数据帧,它们的列名基本相同,但右边的数据帧有一些左边没有的列,反之亦然。 我已尝试使用外部联接进行联接: 但这会产生: 我还指定了一个要连接的列(例如,on="id"),但这会重复所有列,除了"id",如attr_1_x、attr_1_y,这并不理想。我还传递了整个列列表(有很多)到on: 其产生: 我错过了什么?我想得到一个附加了所有行的df,并且

  • 我正在寻找通过以下条件过滤df的方法: 由创建的