Pandas Dataframe - 在A列中的每个标签上找到B列的总和

时间:2014-04-28 16:31:28

标签: python pandas multiple-entries

假设我们有以下数据:

...    col1    col2    col3
 0      A      1       info
 1      A      2       other
 2      B      3       blabla

我想使用python pandas查找重复的条目(在第1列中)并根据第2列添加它们。

在python中我会做类似以下的事情:

l = [('A',1), ('A',2), ('B',3)]
d = {}
for i in l:
    if(i[0] not in d.keys()):
        d[i[0]]=i[1]
    else:
        d[i[0]]=d[i[0]]+i[1]
print(d)

结果将是:

{'A': 3, 'B': 3}

是否有一种简单的方法可以使用pandas做同样的事情?

1 个答案:

答案 0 :(得分:6)

使用DataFrame.groupby().sum()

In [1]: import pandas

In [2]: df = pandas.DataFrame({"col1":["A", "A", "B"], "col2":[1,2,3]})

In [3]: df.groupby("col1").sum()
Out[3]: 
      col2
col1      
A        3
B        3

In [4]: df.groupby("col1").sum().reset_index()
Out[4]: 
  col1  col2
0    A     3
1    B     3

[2 rows x 2 columns]