2

假设我们有以下数据:

...    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}

有没有一种简单的方法可以使用熊猫做同样的事情?

4

1 回答 1

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]
于 2014-04-28T16:35:24.447 回答