例如,我在Pandas中有一个DataFrame:df = pd.DataFrame("a":[0,0,1,1,0], "penalty":["12", "15","13","100", "22"])
以及如何才能对“惩罚”列中的值求和,但我只想对“惩罚”列中在“ a”列中值为0的这些值求和?
最佳答案
您可以使用以下方法过滤数据框:
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
等于列a
等于0的列。之后,您将执行.sum()
操作,从而返回预期的输出(49)。我所做的唯一更改是删除了引号,以便将penalty
列的值解释为整数而不是字符串。如果输入必须是字符串,则可以使用df['penalty'] = df['penalty'].astype(int)
进行更改