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 に答える