一列中的值之和基于另一列中的特定值

时间:2019-11-20 19:49:18

标签: python pandas sum

例如,我在Pandas中有一个DataFrame:

df = pd.DataFrame("a":[0,0,1,1,0], "penalty":["12", "15","13","100", "22"])

以及如何对“惩罚”列中的值求和,但我只想对“惩罚”列中在“ a”列中值为0的这些值求和?

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法过滤数据框:

import pandas as pd
data ={'a':[0,0,1,1,0],'penalty':[12, 15,13,100, 22]}
df = pd.DataFrame(data)
print(df.loc[df['a'].eq(0), 'penalty'].sum())

通过这种方式,您从数据框中选择列penalty等于0的列a。之后,您将执行.sum()操作,因此返回预期的输出( 49)。我所做的唯一更改是删除了引号,以便将penalty列的值解释为整数而不是字符串。如果输入必须是字符串,则可以简单地使用df['penalty'] = df['penalty'].astype(int)

进行更改。

答案 1 :(得分:0)

过滤a列中包含0的行,并计算惩罚列的总和。

import pandas as pd
data ={'a':[0,0,1,1,0],'penalty':[12, 15,13,100, 22]}
df = pd.DataFrame(data)
df[df.a == 0].penalty.sum()