Using 'DataFrameGroupBy.max()' method, we can get the maximum value for each group.
Example
data = { 'Age': [34, 25, 29, 41, 52, 23],
'Name': ['Krishna', 'Chamu', 'Joel', 'Gopi', 'Sravya', "Raj"],
'City': ['Bangalore', 'Chennai', 'Hyderabad', 'Hyderabad', 'Bangalore', 'Chennai'],
'Gender': ['Male', 'Female', 'Male', 'Male', 'Female', 'Male']}
df = pd.DataFrame(data)
group_by_city = df.groupby('City')
min_ele_in_each_group = group_by_city.min()
In the example above, I defined a DataFrame df with columns "Age", "Name", "City" and "Gender", grouped the DataFrame by the "City" column using groupby('City'), resulting in a DataFrameGroupBy object named 'group_by_city'.
By calling the min() method on the 'group_by_city' object, we can obtain a new DataFrame named 'min_ele_in_each_group'. This DataFrame contains the minimum value from the all the rows for each group based on the grouping criteria. The index of the DataFrame represents the unique group values ('Bangalore', 'Hyderabad' and 'Chennai' in this case), and the "Value" column contains the corresponding row from each group.
Note
a. ‘min()’ method applies the maximum calculation to all columns in the DataFrame by default.
Find the below working application.
min_value_of_each_group.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 = { 'Age': [34, 25, 29, 41, 52, 23],
'Name': ['Krishna', 'Chamu', 'Joel', 'Gopi', 'Sravya', "Raj"],
'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')
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')
min_ele_in_each_group = group_by_city.min()
print('\nType of min_ele_in_each_group : ', type(min_ele_in_each_group))
print('\nData in min_ele_in_each_group is : ')
print(min_ele_in_each_group)
Output
Age Name City Gender
0 34 Krishna Bangalore Male
1 25 Chamu Chennai Female
2 29 Joel Hyderabad Male
3 41 Gopi Hyderabad Male
4 52 Sravya Bangalore Female
5 23 Raj Chennai Male
Group by city is
type of group_by_city is : <class 'pandas.core.groupby.generic.DataFrameGroupBy'>
**************************************************
Group by city details
Group Name: Bangalore
Age Name City Gender
0 34 Krishna Bangalore Male
4 52 Sravya Bangalore Female
Group Name: Chennai
Age Name City Gender
1 25 Chamu Chennai Female
5 23 Raj Chennai Male
Group Name: Hyderabad
Age Name City Gender
2 29 Joel Hyderabad Male
3 41 Gopi Hyderabad Male
**************************************************
Type of min_ele_in_each_group : <class 'pandas.core.frame.DataFrame'>
Data in min_ele_in_each_group is :
Age Name Gender
City
Bangalore 34 Krishna Female
Chennai 23 Chamu Female
Hyderabad 29 Gopi Male
Previous Next Home
No comments:
Post a Comment