Open In App

Getting frequency counts of a columns in Pandas DataFrame

Improve
Improve
Like Article
Like
Save
Share
Report

Given a Pandas dataframe, we need to find the frequency counts of each item in one or more columns of this dataframe. This can be achieved in multiple ways:

Method #1: Using Series.value_counts()

This method is applicable to pandas.Series object. Since each DataFrame object is a collection of Series object, we can apply this method to get the frequency counts of values in one column.




# importing pandas as pd
import pandas as pd
  
# sample dataframe
df = pd.DataFrame({'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g',
                         'bar', 'bar', 'foo', 'bar'],
                  'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })
  
# frequency count of column A
count = df['A'].value_counts()
print(count)


Output:

 
Method #2: Using GroupBy.count()

This method can be used to count frequencies of objects over single columns. After grouping a DataFrame object on one column, we can apply count() method on the resulting groupby object to get a DataFrame object containing frequency count.




# importing pandas as pd
import pandas as pd
  
# sample dataframe
df = pd.DataFrame({ 'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g',
                                'bar', 'bar', 'foo', 'bar'],
                   'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })
  
# Multi-column frequency count
count = df.groupby(['A']).count()
print(count)


Output:

 
Method #3: Using GroupBy.size()

This method can be used to count frequencies of objects over single or multiple columns. After grouping a DataFrame object on one or more columns, we can apply size() method on the resulting groupby object to get a Series object containing frequency count.




# importing pandas as pd
import pandas as pd
  
# sample dataframe
df = pd.DataFrame({ 'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g'
                                'bar', 'bar', 'foo', 'bar'],
                   'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })
  
# Multi-column frequency count
count = df.groupby(['A', 'B']).size()
print(count)


Output:



Last Updated : 28 Dec, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads