Using ‘len’ function, we can get the number of groups in DataFrameGroupBy object.
Example
group_by_city = df.groupby('City')
group_by_gender_city = df.groupby(['Gender', 'City'])
print('\nTotal groups in group_by_city are : ', len(group_by_city))
print('Total groups in group_by_gender_city are : ', len(group_by_gender_city))
Find the below working application.
count_groups.py
import pandas as pd
# Print the content of DataFrameGroupBy object
def print_group_by_result(group_by_object, label):
print('*'*50)
print(label,'\n')
for group_name, group_data in group_by_object:
print("Group Name:", group_name)
print(group_data)
print()
print('*' * 50)
# Create a sample DataFrame
data = {'Name': ['Krishna', 'Chamu', 'Joel', 'Gopi', 'Sravya', "Raj"],
'Age': [34, 25, 29, 41, 52, 23],
'City': ['Bangalore', 'Chennai', 'Hyderabad', 'Hyderabad', 'Bangalore', 'Chennai'],
'Gender': ['Male', 'Female', 'Male', 'Male', 'Female', 'Male']}
df = pd.DataFrame(data)
print(df)
group_by_city = df.groupby('City')
group_by_gender_city = df.groupby(['Gender', 'City'])
print('\nTotal groups in group_by_city are : ', len(group_by_city))
print('Total groups in group_by_gender_city are : ', len(group_by_gender_city))
print('\nGroup by city is')
print('type of group_by_city is : ', type(group_by_city))
print_group_by_result(group_by_city, 'Group by city details')
print('\nGroup by Gender and City is')
print('type of group_by_gender_city is : ', type(group_by_gender_city))
print_group_by_result(group_by_gender_city, 'Group by Gender and City details')
Output
Name Age City Gender
0 Krishna 34 Bangalore Male
1 Chamu 25 Chennai Female
2 Joel 29 Hyderabad Male
3 Gopi 41 Hyderabad Male
4 Sravya 52 Bangalore Female
5 Raj 23 Chennai Male
Total groups in group_by_city are : 3
Total groups in group_by_gender_city are : 5
Total groups in group_by_city are : Name Age Gender
City
Bangalore 2 2 2
Chennai 2 2 2
Hyderabad 2 2 1
Total groups in group_by_gender_city are : Name Age
Gender City
Female Bangalore 1 1
Chennai 1 1
Male Bangalore 1 1
Chennai 1 1
Hyderabad 2 2
Group by city is
type of group_by_city is : <class 'pandas.core.groupby.generic.DataFrameGroupBy'>
**************************************************
Group by city details
Group Name: Bangalore
Name Age City Gender
0 Krishna 34 Bangalore Male
4 Sravya 52 Bangalore Female
Group Name: Chennai
Name Age City Gender
1 Chamu 25 Chennai Female
5 Raj 23 Chennai Male
Group Name: Hyderabad
Name Age City Gender
2 Joel 29 Hyderabad Male
3 Gopi 41 Hyderabad Male
**************************************************
Group by Gender and City is
type of group_by_gender_city is : <class 'pandas.core.groupby.generic.DataFrameGroupBy'>
**************************************************
Group by Gender and City details
Group Name: ('Female', 'Bangalore')
Name Age City Gender
4 Sravya 52 Bangalore Female
Group Name: ('Female', 'Chennai')
Name Age City Gender
1 Chamu 25 Chennai Female
Group Name: ('Male', 'Bangalore')
Name Age City Gender
0 Krishna 34 Bangalore Male
Group Name: ('Male', 'Chennai')
Name Age City Gender
5 Raj 23 Chennai Male
Group Name: ('Male', 'Hyderabad')
Name Age City Gender
2 Joel 29 Hyderabad Male
3 Gopi 41 Hyderabad Male
**************************************************
Previous Next Home
No comments:
Post a Comment