例如,我在Pandas中有一个DataFrame:
df = pd.DataFrame("a":[0,0,1,1,0], "penalty":["12", "15","13","100", "22"])
以及如何对“惩罚”列中的值求和,但我只想对“惩罚”列中在“ a”列中值为0的这些值求和?
答案 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()