• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

The Programming Expert

Solving All of Your Programming Headaches

  • HTML
  • JavaScript
  • jQuery
  • PHP
  • Python
  • SAS
  • Ruby
  • About
You are here: Home / Python / How to Group By Columns and Find Minimum in pandas DataFrame

How to Group By Columns and Find Minimum in pandas DataFrame

October 13, 2022 Leave a Comment

To group by multiple columns and then find the minimum of values by group in a pandas DataFrame, you can use the groupby() and min() functions.

import pandas as pd

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], 
                   "gender":["F","F","F","F","M","M","M","F","M"], 
                   "age":[1,2,3,4,5,6,7,8,9], 
                   "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["animal_type","gender"])["age"].min().rename('age_min').reset_index())

#Output:
  animal_type gender  age  weight
0         dog      F    1      10
1         cat      F    2      20
2         dog      F    3      15
3         cat      F    4      20
4         dog      M    5      25
5         dog      M    6      10
6         cat      M    7      15
7         cat      F    8      30
8         dog      M    9      40

  animal_type gender  age_min
0         cat      F        2
1         cat      M        7
2         dog      F        1
3         dog      M        5

When working with data, it is very useful to be able to group and aggregate data by multiple columns to understand the various segments of our data.

One such case is if you want to group your data and get the minimum of a variable for each group.

To get the min of a variable by groups of columns in a pandas DataFrame, you can use the groupby() and min() functions.

Below is a simple example showing you how you can group by and then get the minimum of a variable of each group in a pandas DataFrame in Python.

In the example below, I’ve renamed the min of rows to ‘age_min’ and then reset the index so that we can work with the resulting DataFrame easier.

import pandas as pd

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], "gender":["F","F","F","F","M","M","M","F","M"], "age":[1,2,3,4,5,6,7,8,9], "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["animal_type","gender"])["age"].min().rename('age_min').reset_index())

#Output:
  animal_type gender  age  weight
0         dog      F    1      10
1         cat      F    2      20
2         dog      F    3      15
3         cat      F    4      20
4         dog      M    5      25
5         dog      M    6      10
6         cat      M    7      15
7         cat      F    8      30
8         dog      M    9      40

  animal_type gender  age_min
0         cat      F        2
1         cat      M        7
2         dog      F        1
3         dog      M        5

Using groupby() and min() on Single Column in pandas DataFrame

You can use groupby() to group a pandas DataFrame by one column or multiple columns.

If you want to group a pandas DataFrame by one column and then get the minimum of a variable in each group with min(), you can do the following.

import pandas as pd

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], "gender":["F","F","F","F","M","M","M","F","M"], "age":[1,2,3,4,5,6,7,8,9], "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["animal_type"])["age"].min().rename('age_min').reset_index())

#Output:
  animal_type gender
0         dog      F
1         cat      F
2         dog      F
3         cat      F
4         dog      M
5         dog      M
6         cat      M
7         cat      F
8         dog      M

  animal_type  age_min
0         cat        2
1         dog        1

If you want to group by a single column and find the minimums of multiple variables, you can do the following. In this case, the column names will be the names of the original columns.

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], "gender":["F","F","F","F","M","M","M","F","M"], "age":[1,2,3,4,5,6,7,8,9], "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["gender"])["age","weight"].min().reset_index())

#Output:
  animal_type gender  age  weight
0         dog      F    1      10
1         cat      F    2      20
2         dog      F    3      15
3         cat      F    4      20
4         dog      M    5      25
5         dog      M    6      10
6         cat      M    7      15
7         cat      F    8      30
8         dog      M    9      40

  gender  age  weight
0      F    1      10
1      M    5      10

Using groupby() to Group By Multiple Columns and min() in pandas DataFrame

If you want to group a pandas DataFrame by multiple columns and then get the minimum of a variable in each group with min(), you can do the following.

import pandas as pd

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], "gender":["F","F","F","F","M","M","M","F","M"], "age":[1,2,3,4,5,6,7,8,9], "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["animal_type","gender"])["age"].min().rename('age_min').reset_index())

#Output:
  animal_type gender  age  weight
0         dog      F    1      10
1         cat      F    2      20
2         dog      F    3      15
3         cat      F    4      20
4         dog      M    5      25
5         dog      M    6      10
6         cat      M    7      15
7         cat      F    8      30
8         dog      M    9      40

  animal_type gender  age_min
0         cat      F        2
1         cat      M        7
2         dog      F        1
3         dog      M        5

If you want to group by multiple columns and find the minimums of multiple variables, you can do the following. In this case, the column names will be the names of the original columns.

import pandas as pd

df = pd.DataFrame({"animal_type":["dog","cat","dog","cat","dog","dog","cat","cat","dog"], "gender":["F","F","F","F","M","M","M","F","M"], "age":[1,2,3,4,5,6,7,8,9], "weight":[10,20,15,20,25,10,15,30,40]})

print(df)
print(df.groupby(["animal_type","gender"])["age","weight"].min().reset_index())

#Output:
  animal_type gender  age  weight
0         dog      F    1      10
1         cat      F    2      20
2         dog      F    3      15
3         cat      F    4      20
4         dog      M    5      25
5         dog      M    6      10
6         cat      M    7      15
7         cat      F    8      30
8         dog      M    9      40

  animal_type gender  age  weight
0         cat      F    2      20
1         cat      M    7      15
2         dog      F    1      10
3         dog      M    5      10

Hopefully this article has been useful for you to learn how to group by and find minimums in pandas with groupby() and min().

Other Articles You'll Also Like:

  • 1.  Random Number Without Repeating in Python
  • 2.  How to Return Nothing in Python from Function
  • 3.  rfind Python – Find Last Occurrence of Substring in String
  • 4.  Using Python to Reverse Tuple
  • 5.  Using Python to Check if Queue is Empty
  • 6.  Not Equal Operator != in Python
  • 7.  Using Python to Check if Number is Divisible by Another Number
  • 8.  Check if List is Subset of Another List in Python
  • 9.  Python to_bytes() – Create Bytes Object from Integer
  • 10.  Concatenate Multiple Files Together in Python

About The Programming Expert

The Programming Expert is a compilation of a programmer’s findings in the world of software development, website creation, and automation of processes.

Programming allows us to create amazing applications which make our work more efficient, repeatable and accurate.

At the end of the day, we want to be able to just push a button and let the code do it’s magic.

You can read more about us on our about page.

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

About The Programming Expert

the programming expert main image

Welcome to The Programming Expert. We are a group of US-based programming professionals who have helped companies build, maintain, and improve everything from simple websites to large-scale projects.

We built The Programming Expert to help you solve your programming problems with useful coding methods and functions in various programming languages.

Search

Learn Coding from Experts on Udemy

Looking to boost your skills and learn how to become a programming expert?

Check out the links below to view Udemy courses for learning to program in the following languages:

Copyright © 2023 · The Programming Expert · About · Privacy Policy

x