How to Count Values in Pandas DataFrame

In this tutorial, we're going to count values in Pandas DataFrame.

Check this article for most common values in DataFrame: Get most frequent values in Pandas DataFrame

Setup

Suppose we have a dataframe with data:

import pandas as pd
data = [('A',1, 0, 3, 1),
        ('A',1, 2, 5, 1),
        ('B',2, 1, 4, 3),
       ('B',3, 1, 0, 3),
       ('C',4, 3, 1, 2)]
cols = ('col_1', 'col_2', 'col_3', 'col_4', 'col_5' )
df = pd.DataFrame(data,
                 columns = cols)

data:

col_1 col_2 col_3 col_4 col_5
0 A 1 0 3 1
1 A 1 2 5 1
2 B 2 1 4 3
3 B 3 1 0 3
4 C 4 3 1 2

Step 1: Count values in Pandas Column

To count values in single Pandas column we can use method value_counts():

df['col_1'].value_counts()

The result is count of most frequent values sorted in ascending order:

A    2
B    2
C    1
Name: col_1, dtype: int64

Step 2: Count values in Multiple columns

Count values in multiple Pandas columns can be down with method .value_counts():

df[['col_1', 'col_2']].value_counts()

The result is is most common values per group/columns:

col_1  col_2
A      1        2
B      2        1
       3        1
C      4        1
dtype: int64

Step 3: Count values in Pandas DataFrame

To find the most common values in whole DataFrame we can combine:

  • melt
  • value_counts
df.melt()['value'].value_counts()

So we get the** count of all values for this DataFrame**:

1    7
3    5
2    3
A    2
B    2
4    2
0    2
C    1
5    1
Name: value, dtype: int64

Conclusion

In this short article we covered how to count values in Pandas DataFrame. We saw how to count values in single or multiple columns.

Finally with covered how to get most common values for the whole DataFrame