Pandas dataframe - 将一列与另一列中的值相加

Pandas dataframe - Sum a column wrt to values in another column

我有一个看起来像这样的数据:-

data = {"doc1" : {'a': 2 , 'b': 1,'c':3}, "doc2" :  {'a': 1 , 'b': 1,'c':3}, "doc3" : {'a': 1 , 'b': 1,'c':3}}

我把它转换成一个数据帧:-

df = pd.DataFrame.from_dict(data,orient='index')

数据框看起来像这样:-

a c b doc1 2 3 1 doc2 1 3 1 doc3 1 3 1

现在我想对 b 列中的所有值求和,其中 a 列的值为 1。

所以我想要的值将是 2。

有没有一种简单的方法可以做到这一点而不是遍历两列? 我查看了其他帖子,发现 :-

这利用了 .loc 函数。 df.loc[df['a'] == 1, 'b'].sum()

但出于某种原因,我似乎无法使用我的数据框。

请告诉我。

谢谢。

你们很亲近。见下文。

>>> df[df['a'] == 1]['b'].sum()
2

而不是使用 .loc,尝试先过滤数据帧 (df[df['a'] == 1]),然后选择列 'b',然后求和。

编辑:我会把它留在这里以供将来参考,尽管根据您使用的 pandas 版本,您的解决方案 应该 有效(谢谢, @maxymoo)。我是 运行 0.18.1,两种方法都有效。