Pandas Series - value_counts() function
The Pandas Series value_counts() function returns a Series containing counts of unique values in the given Series.
Syntax
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
Parameters
normalize |
Optional. If set to True, returns proportions rather than frequencies of the unique values. |
sort |
Optional. A boolean value to specify to sort by frequencies or not. Default is True. |
ascending |
Optional. A boolean value to specify to sort in ascending order or not. Default is False. |
bins |
Optional. Rather than count values, group them into half-open bins. Only works with numeric data. |
dropna |
Optional. A boolean value to specify whether to drop NA values or not. Default is True. |
Return Value
Returns a Series containing counts of unique values.
Example: using value_counts() on a Series
In the example below, the value_counts() function is used to get the count of unique values in the given Series.
import pandas as pd import numpy as np x = pd.Series([24, 27, 24, 27, 27, 30]) print("The Series contains:") print(x) print("\nx.value_counts() returns:") print(x.value_counts()) print("\nx.value_counts(sort=False) returns:") print(x.value_counts(sort=False)) print("\nx.value_counts(ascending=True) returns:") print(x.value_counts(ascending=True)) print("\nx.value_counts(normalize=True) returns:") print(x.value_counts(normalize=True))
The output of the above code will be:
The Series contains: 0 24 1 27 2 24 3 27 4 27 5 30 dtype: int64 x.value_counts() returns: 27 3 24 2 30 1 dtype: int64 x.value_counts(sort=False) returns: 24 2 27 3 30 1 dtype: int64 x.value_counts(ascending=True) returns: 30 1 24 2 27 3 dtype: int64 x.value_counts(normalize=True) returns: 27 0.500000 24 0.333333 30 0.166667 dtype: float64
Example: using bins parameter
By using bins parameter, we can group the result into half-open bins as shown in the example below:
import pandas as pd import numpy as np x = pd.Series([24, 27, 24, 29, 28, 30]) print("The Series contains:") print(x) print("\nx.value_counts() returns:") print(x.value_counts()) print("\nx.value_counts(bins=3) returns:") print(x.value_counts(bins=3))
The output of the above code will be:
The Series contains: 0 24 1 27 2 24 3 29 4 28 5 30 dtype: int64 x.value_counts() returns: 24 2 27 1 28 1 29 1 30 1 dtype: int64 x.value_counts(bins=3) returns: (23.993, 26.0] 2 (26.0, 28.0] 2 (28.0, 30.0] 2 dtype: int64
Example: using value_counts() on selected series in a DataFrame
Similarly, the value_counts() function can be applied on selected series/column of a given DataFrame. Consider the following example.
import pandas as pd import numpy as np df = pd.DataFrame({ "Age": [24, 27, 24, 27, 30], "Sex": ['M', 'F', 'M', 'F', 'M'], "City": ['London', 'London', 'Paris', 'London', 'Paris']}, index= ["John", "Marry", "Jo", "Kim", "Huang"] ) print("The DataFrame is:") print(df) #applying value_counts() function on 'City' Series print("\ndf['City'].value_counts() returns:") print(df['City'].value_counts())
The output of the above code will be:
The DataFrame is: Age Sex City John 24 M London Marry 27 F London Jo 24 M Paris Kim 27 F London Huang 30 M Paris df['City'].value_counts() returns: London 3 Paris 2 Name: City, dtype: int64
❮ Pandas Series - Functions