【问题标题】:Having trouble to sum values in a column that match a given condition无法对与给定条件匹配的列中的值求和
【发布时间】:2021-06-11 10:30:23
【问题描述】:

我试图根据另一列的值对一列的数值求和。例如:只要在第一列中有一个Glovoapp,我想将其对应的数值(另一列的)相加。

表格示例:

Initiator Price
Glovoapp 566
XXXXX 545
Glovoapp 899
XXXXX 200
montant_init = new_data.loc[new_data['Initiateur'] == 'Glovoapp', 'Price'].sum()

output: 0 (none)
expected output (example): 1465

【问题讨论】:

    标签: python pandas oop sum operation


    【解决方案1】:

    用途:

    montant_init = df[df["Initiator"]=="Glovoapp"]["Price"].sum()
    

    如果您有多个启动器,您也可以使用 groupby:

    price_sum = df.groupby("Initiator")["Price"].sum()
    

    输出:

    Initiator
    Glovoapp    1465
    XXXXX        745
    

    然后

    price_sum["Glovoapp"]
    

    输出:

    1465
    

    【讨论】:

    • 非常感谢!我将使用 groupby 替代方案。非常感谢您的帮助,我会尽快接受答案:D
    • 不用担心,很高兴为您提供帮助
    【解决方案2】:

    我会这样写:

    montant_init = (
        new_data
        [new_data['Initiateur'] == 'Glovoapp']
        ['Montant (centimes)']
        .sum()
    )
    

    【讨论】:

    • 谢谢你的回答,它也对我有用!
    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 2023-03-25
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多