【问题标题】:python: sum last and largest cells for each categorypython:总结每个类别的最后一个和最大的单元格
【发布时间】:2021-09-08 00:23:13
【问题描述】:

给定这个数据框,我想为“x”中的每个类别提取和求和“y”中的最后一个单元格。 例如,“x”中类别 A 的“y”中的最后一个单元格是 4,B 是 5,C 是 8, 因此,我想看到 4 + 5+ 8= 17。 我怎么做?如果我想对每个类别的最大数字求和怎么办?所以在这种情况下,它将是 A 中最大的 (5) + B 中最大的 (9) + C 中最大的 (8)。

import numpy as np
import pandas as pd
 data=[['A', 1,2 ,5, 'blue'],
        ['A', 5,5,6, 'blue'],
        ['A', 4,6,7, 'blue']
        ,['B', 6,5,4,'yellow'],
        ['B',9,9,3, 'blue'],
        ['B', 7,9,1,'yellow']
        ,['B', 2,3,1,'yellow'],
        ['B', 5,1,2,'yellow'],
        ['C',2,10,9,'green']
        ,['C', 8,2,8,'green'],
        ['C', 5,4,3,'green'],
        ['C', 8,5 ,3,'green']]
df = pd.DataFrame(data, columns=['x','y','z','xy', 'color'])

【问题讨论】:

    标签: python pandas group-by sum


    【解决方案1】:

    无论哪种方式,您都需要groupby

    >>> df.groupby("x")["y"].last().sum()
    17
    >>> df.groupby("x")["y"].max().sum()
    22
    

    【讨论】:

    • 合并它们df.groupby("x")["y"].agg(['last','max']).sum()
    • 是的,但我认为问题的结构方式听起来像是两个不同的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多