【问题标题】:Pandas - How to get sum of column with positive and negative values? [duplicate]Pandas - 如何获得具有正值和负值的列的总和? [复制]
【发布时间】:2020-02-25 07:28:18
【问题描述】:

我正在使用包含正值和负值的 pandas 对一列数据求和。

我首先通过删除 $ 符号和括号来清理数据。然后格式化为浮点数。

如何对整列求和并减去负数?

例子:

    $1000
    ($200)
    $300
    $1250
    ($100)

我希望答案是 2250 而不是 2550。

提前致谢!

【问题讨论】:

标签: python pandas sum


【解决方案1】:

Pandas DataFrame 对象具有将轴作为参数的 .sum 方法

my_dataframe['name_of_column_you_want'].sum(axis = 0) # axis=0 means down (the rows)

我不明白你的例子。

【讨论】:

    【解决方案2】:

    您要识别值和符号:

    # positive and negative
    signs = np.where(s.str.startswith('('), -1, 1)
    
    # extract the values
    vals = s.str.extract('\$([\d\.]*)')[0].astype(int)
    
    # calculate the sum
    vals.mul(signs).sum()
    
    # 2250
    

    【讨论】:

    • 这很有帮助。谢谢!
    【解决方案3】:
    import re
    def clean(column_name) :
        if column_name.find('(') > 0 :
           return float(re.match(r'(\d+)').group(0)) 
        else :
           return -float(re.match(r'(\d+)').group(0)) 
    my_dataframe['column_name'].apply(clean).sum()
    

    【讨论】:

    • 虽然代码可能会解决问题,但一个好的答案还应该说明代码做什么以及它如何解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2023-02-10
    • 2019-12-28
    • 2017-11-25
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多