【发布时间】:2020-02-25 07:28:18
【问题描述】:
我正在使用包含正值和负值的 pandas 对一列数据求和。
我首先通过删除 $ 符号和括号来清理数据。然后格式化为浮点数。
如何对整列求和并减去负数?
例子:
$1000
($200)
$300
$1250
($100)
我希望答案是 2250 而不是 2550。
提前致谢!
【问题讨论】:
我正在使用包含正值和负值的 pandas 对一列数据求和。
我首先通过删除 $ 符号和括号来清理数据。然后格式化为浮点数。
如何对整列求和并减去负数?
例子:
$1000
($200)
$300
$1250
($100)
我希望答案是 2250 而不是 2550。
提前致谢!
【问题讨论】:
Pandas DataFrame 对象具有将轴作为参数的 .sum 方法
my_dataframe['name_of_column_you_want'].sum(axis = 0) # axis=0 means down (the rows)
我不明白你的例子。
【讨论】:
您要识别值和符号:
# 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
【讨论】:
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()
【讨论】: