如何停止for循环,该循环求和返回多个相同值的列中的值?

时间:2018-11-27 15:44:04

标签: python python-3.x pandas dataframe

假设我具有以下数据框:

import pandas as pd

df = pd.DataFrame()
df['ID'] = 1, 1, 1, 2, 2, 3, 3
df['a'] = 3, 5, 6, 3, 8, 1, 2

我想创建一个for循环,该循环遍历ID,并为该ID返回“ a”的总和。到目前为止,我有这个:

for i in df['ID']:
    print(i, df.loc[df['ID'] == i, 'a'].sum())

但是这将返回相同值的倍数,如下所示:

1 14
1 14
1 14
2 11
2 11
3 3
3 3

如何编辑我的池,以便一旦池返回'id'== 1的值,它将移至下一个ID值,而不是仅移至下一行?

我正在寻找以下内容:

1 14
2 11
3 3

谢谢!

1 个答案:

答案 0 :(得分:1)

这比循环(与许多熊猫数据框问题一样)更适合var thingy = this.getValue(); getValue(){ return document.getElementById("item").value; }

groupby

但是,只是为了解释循环出错的地方,您可以循环遍历>>> df.groupby('ID')['a'].sum() ID 1 14 2 11 3 3 Name: a, dtype: int64 的唯一值,而不是遍历所有行:

df['ID']