Search code examples
pythonpython-2.7pandascounter

Pandas Counting Unique Rows


I have a pandas data frame similar to:

ColA ColB
1    1
1    1
1    1
1    2
1    2
2    1
3    2

I want an output that has the same function as Counter. I need to know how many time each row appears (with all of the columns being the same.

In this case the proper output would be:

ColA ColB Count
1    1    3
1    2    2
2    1    1
3    2    1

I have tried something of the sort:

df.groupby(['ColA','ColB']).ColA.count()

but this gives me some ugly output I am having trouble formatting


Solution

  • You can use size with reset_index:

    print df.groupby(['ColA','ColB']).size().reset_index(name='Count')
       ColA  ColB  Count
    0     1     1      3
    1     1     2      2
    2     2     1      1
    3     3     2      1