Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Machine Learning by (11.4k points)

I have a dataset


cat a 

cat b 

cat a

I'd like to be able to return something like (showing unique values and frequency)

category | freq | 

 cat a       2   

 cat b       1

2 Answers

0 votes
by (33.1k points)

There are many ways to solve this problem:

Use groupby() and count() functions:

In [37]: 

df = pd.DataFrame({'a':list('abssbab')}) 



 a  a

 a  2  

 b  3 

 s  2 

Use value_counts() method:

In [38]: 



b   3 

a   2 

s   2 

dtype: int64

Use transform() method:

In [41]:

df['freq'] = df.groupby('a')['a'].transform('count') 



   a freq 

0  a 2 

1  b 3 

2  s 2 

3  s 2 

4  b 3 

5  a 2 

6  b 3 

Hope this answer helps.

0 votes
by (106k points)

To count the frequency that a value occurs in a dataframe column if you want to apply to all columns then you can use the below-mentioned code:-


This will apply a column-based aggregation function (in this case value_counts) to each of the columns.

Browse Categories