How to select n rows and n columns of a Pandas DataFrame using Python

1 min

Being able to go through rows and columns is crucially important for a Data Scientist.

There is two axis so to say two indexes you can provide to go through a DataFrame.

  1. Rows
  2. Columns

And there is one method that can handle everything you need.

The DataFrame.iloc[] method.

And you can use this method to either select a specific row or columns but also ranges.

The same as lists

As you might remember lists can be sliced. e.g.

fruits = ["Apple", "Orange", "Strawberry", "Blueberry"]

# Prints from the index number two to the end
print(fruits[2:]) # ['Strawberry', 'Blueberry']

The DataFrame.iloc[] method can be used the exact same way.

With iloc you will need to pass the row and column slice you want to subselect.

The DataFrame accepts [row, columns] indexes. so to say e.g. df.iloc[2,:] means the row at index 2 and all the columns.

A specific row and column

As you can see in this example we can filter for a specific row and column.

import pandas as pd
import numpy as np

# We create our dataframe
df = pd.DataFrame({"col1": range(0,10),
                   "col2": range(10,20)})

# We print our dataframe
print(df)

# We print the second row of the second column of our dataframe
print(df.iloc[2,1])

A specific range of rows and columns

We can use the DataFrame.iloc[] slicing method.

import pandas as pd
import numpy as np

# We create our dataframe
df = pd.DataFrame({"col1": range(0,10),
                   "col2": range(10,20),
                   "col3": range(20,30)})

# We print our dataframe
print(df)

# We print the 4th row till the sixth of the column index 1 till end (3-6 col2 to col3)
print(df.iloc[3:7,1:])

Here you are! you now know how to select a specific row of DataFrame.

More on fundamentals

If you want to know more about Python fundamentals without headaches... check out the other articles I wrote by clicking just here:

Fundamentals - The Python You Need
We gathered the only Python essentials that you will probably ever need.