【问题标题】:How to groupby pandas dataframe and sum values in another column如何对熊猫数据框进行分组并对另一列中的值求和
【发布时间】:2021-10-17 10:04:55
【问题描述】:

我有一个包含 3 列(CHAR、VALUE 和 WEIGHT)的 pandas 数据框。

  • CHAR 列包含我需要对 ['A', 'A', 'A', 'B', 'B', 'C'] 分组的重复值。

  • VALUE 列对于每个唯一的 CHAR [10, 10, 10, 15, 15, 20] 都有唯一的值。

  • WEIGHT 列有各种值 [1, 2, 1, 4, 4, 6]。

以我的初始数据框为例:

我需要创建一个包含 3 列的新数据框。

  • CHAR 不会有任何重复项
  • T_VALUE(总值)将包含此 CHAR 的值及其所有权重的总和
  • T_WEIGHT(总权重)将具有此 CHAR 权重的总和

结果如下所示:

我将非常感谢任何帮助。

【问题讨论】:

  • df.goupby('char').agg('sum') ...我认为...没有实际尝试过
  • 这几乎就是我想要的。通过一些研究,我能够解决我的问题。谢谢!

标签: python pandas dataframe


【解决方案1】:

您可以改用+=

newDF = df.groupby(['CHAR', 'VALUE'], as_index=False)['WEIGHT'].sum()
newDF['VALUE'] += newDF['WEIGHT']

【讨论】:

    【解决方案2】:

    我实际上能够回答我自己的问题。 这是解决方案:

    d = {'CHAR': ['A', 'A', 'A', 'B', 'B', 'C'],
         'VALUE': [10, 10, 10, 15, 15, 20], 
         'WEIGHT':  [1, 2, 1, 4, 4, 6]}
    df = pandas.DataFrame(data=d)
    
    newDF = df.groupby(['CHAR', 'VALUE'], as_index=False)['WEIGHT'].sum()
    newDF['VALUE'] = newDF['VALUE'] + newDF['WEIGHT']
    

    【讨论】:

      猜你喜欢
      • 2017-10-15
      • 1970-01-01
      • 2017-08-03
      • 2020-06-22
      • 2021-11-02
      • 1970-01-01
      • 2021-12-22
      • 2018-05-22
      • 1970-01-01
      相关资源
      最近更新 更多