Flatten columns by grouping by and adding values in pandas

时间:2016-07-28 20:29:57

标签: python pandas

I have a dataframe like

 id, index, name, count1, count2
   1,   1,  foo, 12, 10
   1, 2,  foo,  11, 12
   1, 3, foo, 23, 12
   1, 1, bar, 11, 21
   ...
   2, 1, foo, ...

I want to get a dataframe as follows

id, name, count1, count2
1, foo, 46,34
1, bar, ..

So basically, i want to "washaway" index from this field.. while adding the count1 and count2 columns

How do i do this in pandas/python?

1 个答案:

答案 0 :(得分:1)

是你想要的吗?

In [24]: df.groupby(['id','name']).sum().reset_index()
Out[24]:
   id name  index  count1  count2
0   1  bar      1      11      21
1   1  foo      6      46      34

如果您要删除index列:

In [26]: df.groupby(['id','name']).sum().reset_index().drop('index', 1)
Out[26]:
   id name  count1  count2
0   1  bar      11      21
1   1  foo      46      34

数据:

In [25]: df
Out[25]:
   id  index name  count1  count2
0   1      1  foo      12      10
1   1      2  foo      11      12
2   1      3  foo      23      12
3   1      1  bar      11      21