• Post author:
  • Post category:Pandas
  • Post last modified:May 16, 2024
  • Reading time:7 mins read
You are currently viewing Pandas loc[] Multiple Conditions

To select rows based on multiple conditions, use the Pandas loc[] attribute. The loc[] function in pandas allows you to select data based on labels or a boolean array. When dealing with multiple conditions, you can combine them using logical operators like & (and), | (or), and ~ (not).

Advertisements

A Pandas DataFrame is a two-dimensional, labeled data structure with columns and rows. When you select specific columns from a DataFrame, you create a new DataFrame that includes only those selected columns from the original DataFrame. In this article, I will explain pandas loc[] with multiple conditions.

Quick Examples of loc[] Multiple Conditions

If you are in a hurry, below are some quick examples of how to Pandas.DataFrame.loc[] to select rows by checking multiple conditions.


# Below are the quick examples 

# Example 1 Using loc[] with multiple conditions
df2=df.loc[(df['Discount'] >= 1000) & (df['Discount'] <= 2000)]

# Example 2
df2=df.loc[(df['Discount'] >= 1200) | (df['Fee'] >= 23000 )]
print(df2)

Let’s create a DataFrame and explore how to use pandas loc[].


# Create DataFrame
import pandas as pd
technologies = {
    'Courses':["Spark","PySpark","Hadoop","Python","pandas"],
    'Fee' :[20000,25000,26000,22000,24000],
    'Duration':['30day','40days','35days','40days','60days'],
    'Discount':[1000,2300,1200,2500,2000]
              }
index_labels=['r1','r2','r3','r4','r5']
df = pd.DataFrame(technologies,index=index_labels)
print("Create DataFrame:\n", df)

# Outputs:
# r1    Spark  20000    30day      1000
# r2  PySpark  25000   40days      2300
# r3   Hadoop  26000   35days      1200
# r4   Python  22000   40days      2500
# r5   pandas  24000   60days      2000

Yields below output.

Pandas loc multiple conditions

Using loc[] by Multiple Conditions

By using the loc[] attribute you can get selected or filtered rows from DataFrame based on multiple conditions. Here, you can specify the multiple conditions using the & operator. Make sure you surround each condition with the brace. Not using this will get you incorrect results.


# Using loc[] by Multiple Conditions
df2=df.loc[(df['Discount'] >= 1000) & (df['Discount'] <= 2000)]
print("Get selected rows after applying multiple conditions:\n", df2)

Yields below output.

Pandas loc multiple conditions

let’s look at another example, here, we can specify the multiple conditions using | (or) operator.


Using loc[] by multiple conditions
df2=df.loc[(df['Discount'] >= 1200) | (df['Fee'] >= 23000 )]
print("Get selected rows after applying multiple conditions:\n", df2)

Yields below output.


# Output:
# Get selected rows after applying multiple conditions:
    Courses    Fee Duration  Discount
r2  PySpark  25000   40days      2300
r3   Hadoop  26000   35days      1200
r4   Python  22000   40days      2500
r5   pandas  24000   60days      2000

Complete Examples of pandas loc[] With Multiple Conditions


import pandas as pd
technologies = {
    'Courses':["Spark","PySpark","Hadoop","Python","pandas"],
    'Fee' :[20000,25000,26000,22000,24000],
    'Duration':['30day','40days','35days','40days','60days'],
    'Discount':[1000,2300,1200,2500,2000]
              }
index_labels=['r1','r2','r3','r4','r5']
df = pd.DataFrame(technologies,index=index_labels)
print(df)

# Example 1 - Using loc[] with multiple conditions
df2=df.loc[(df['Discount'] >= 1000) & (df['Discount'] <= 2000)]
print(df2)

# Example 2
df2=df.loc[(df['Discount'] >= 1200) | (df['Fee'] >= 23000 )]
print(df2)

Conclusion

In this article, you have learned how to use the Pandas loc[] property to filter or select DataFrame rows based on multiple conditions. Also explained how we can specify the multiple conditions using logical operators like, and(&) and or(|).

Happy Learning !!

Related Articles

References