w3resource

Pandas: Split the specified dataframe into groups and count unique values of 'value' column

Pandas Grouping and Aggregating: Split-Apply-Combine Exercise-15 with Solution

Write a Pandas program to split the following dataframe into groups and count unique values of 'value' column.

Test Data:

   id value
0   1     a
1   1     a
2   2     b
3   3  None
4   3     a
5   4     a
6   4  None
7   4     b

Sample Solution:

Python Code :

import pandas as pd
df = pd.DataFrame({
    'id': [1, 1, 2, 3, 3, 4, 4, 4],
    'value': ['a', 'a', 'b', None, 'a', 'a', None, 'b']
})
print("Original DataFrame:")
print(df)
print("Count unique values:")
print (df.groupby('value')['id'].nunique())

Sample Output:

Original DataFrame:
   id value
0   1     a
1   1     a
2   2     b
3   3  None
4   3     a
5   4     a
6   4  None
7   4     b
Count unique values:
value
a    3
b    2
Name: id, dtype: int64

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Pandas program to split the following dataframe into groups based on all columns and calculate Groupby value counts on the dataframe.
Next: Write a Pandas program to split a given dataframe into groups and list all the keys from the GroupBy object.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz



Python: Tips of the Day

Returns True if there are duplicate values in a flat list, False otherwise

Example:

def tips_duplicates(lst):
  return len(lst) != len(set(lst))

x = [2, 4, 6, 8, 4, 2]
y = [1, 3, 5, 7, 9]
print(tips_duplicates(x))
print(tips_duplicates(y))

Output:

True
False