Open In App

Slicing Pandas Dataframe

Last Updated : 17 Mar, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Slicing a Pandas DataFrame is a important skill for extracting specific data subsets. Whether you want to select rows, columns or individual cells, Pandas provides efficient methods like iloc[] and loc[]. In this guide we’ll explore how to use integer-based and label-based indexing to slice DataFrames effectively.

Create a Custom Dataframe

Let's import pandas library and create pandas dataframe from custom nested list.

Python
import pandas as pd

player_list = [['M.S.Dhoni', 36, 75, 5428000],
               ['A.B.D Villers', 38, 74, 3428000],
               ['V.Kohli', 31, 70, 8428000],
               ['S.Smith', 34, 80, 4428000],
               ['C.Gayle', 40, 100, 4528000],
               ['J.Root', 33, 72, 7028000],
               ['K.Peterson', 42, 85, 2528000]]

df = pd.DataFrame(player_list, columns=['Name', 'Age', 'Weight', 'Salary'])
print(df) 

Output:

Screenshot-2025-03-15-094719

Slicing Using iloc[] (Integer-Based Indexing)

The iloc[] method in Pandas allows us to extract specific rows and columns based on their integer positions starting from 0. Each number represents a position in the DataFrame not the actual label of the row or column.

Slicing Rows in dataframe

Row slicing means selecting a specific set of rows from the DataFrame while keeping all columns.

Python
df1 = df.iloc[0:4]
print(df1)

Output:

Screenshot-2025-03-15-094851

Slicing Columns in dataframe

Column slicing means selecting a specific set of columns from the DataFrame while keeping all rows.

Python
df1 = df.iloc[:, 0:2]

print(df1)

Output:

Screenshot-2025-03-15-095351

Selecting a Specific Cell in a Pandas DataFrame

If you need a single value from a DataFrame you can specify the exact row and column position

Python
value = df.iloc[2, 3]  
print("Specific Cell Value:", value)

Output:

Specific Cell Value: 8428000

Using Boolean Conditions in a Pandas DataFrame

Instead of selecting rows by index we can use Boolean conditions (e.g., Age > 35) to filter rows dynamically.

Python
data = df[df['Age'] > 35].iloc[:, :] 
print("\nFiltered Data based on Age > 35:\n", data)

Output:

Screenshot-2025-03-15-095646

Slicing Using loc[]

We can also implement slicing using the loc function in Pandas but there are some limitations to be aware of. The loc function relies on labels meaning that if your DataFrame has custom labels instead of default integer indices you need to be careful with how you specify them.

Slicing Rows in Dataframe

With loc[] we can extract a range of rows by their labels instead of integer positions.

Python
df.set_index('Name', inplace=True)

custom = df.loc['A.B.D Villers':'S.Smith']
print(custom)

Output:

Screenshot-2025-03-15-100414

Selecting Specified cell in Dataframe

loc[] allows us to fetch a specific value based on row and column labels

Python
value = df.loc['V.Kohli', 'Salary']
print("\nValue of the Specific Cell (V.Kohli, Salary):", value)

Output:

Value of the Specific Cell (V.Kohli, Salary): 8428000

In summary both iloc[] and loc[] provide versatile slicing capabilities in Pandas. While iloc[] is integer-based loc[] relies on labels requiring careful consideration when working with custom indices or mixed data types.


Next Article

Similar Reads