【问题标题】:Sum up column values in Pandas DataFrame总结 Pandas DataFrame 中的列值
【发布时间】:2013-12-09 11:50:33
【问题描述】:

在pandas DataFrame中,是否可以折叠具有相同值的列,并将另一列中的值相加?

代码

data = {"score":{"0":9.397,"1":9.397,"2":9.397995,"3":9.397996,"4":9.3999},"type":{"0":"advanced","1":"advanced","2":"advanced","3":"newbie","4":"expert"},"count":{"0":394.18930604,"1":143.14226729,"2":9.64172783,"3":0.1,"4":19.65413734}}
df = pd.DataFrame(data)
df

输出

     count       score       type
0    394.189306  9.397000    advanced
1    143.142267  9.397000    advanced
2    9.641728    9.397995    advanced
3    0.100000    9.397996    newbie
4    19.654137   9.399900    expert

在上面的示例中,前两行具有相同的 scoretype ,因此应将这些行合并在一起并将它们的分数相加。

期望的输出

     count       score       type
0    537.331573  9.397000    advanced
1    9.641728    9.397995    advanced
2    0.100000    9.397996    newbie
3    19.654137   9.399900    expert

【问题讨论】:

    标签: python python-2.7 pandas


    【解决方案1】:

    这是groupby的工作:

    >>> df.groupby(["score", "type"]).sum()
                            count
    score    type                
    9.397000 advanced  537.331573
    9.397995 advanced    9.641728
    9.397996 newbie      0.100000
    9.399900 expert     19.6541374
    >>> df.groupby(["score", "type"], as_index=False).sum()
          score      type       count
    0  9.397000  advanced  537.331573
    1  9.397995  advanced    9.641728
    2  9.397996    newbie    0.100000
    3  9.399900    expert   19.654137
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 2021-04-06
      • 1970-01-01
      • 2017-06-20
      • 2020-09-30
      • 2019-10-15
      • 1970-01-01
      相关资源
      最近更新 更多