Home Â» How to Get Row Numbers in a Pandas DataFrame

# How to Get Row Numbers in a Pandas DataFrame

Often you may want to get the row numbers in a pandas DataFrame that contain a certain value.

Fortunately this is easy to do using the .index function.

This tutorial shows several examples of how to use this function in practice.

## Example 1: Get Row Numbers that Match a Certain Value

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
'assists': [5, 7, 7, 9, 12],
'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

#view DataFrame
print(df)

points	assists	team
0	25	5	Mavs
1	12	7	Mavs
2	15	7	Spurs
3	14	9	Celtics
4	19	12	Warriors

We can use the following syntax to get the row numbers where â€˜teamâ€™ is equal to Mavs:

#get row numbers where 'team' is equal to Mavs
df[df['team'] == 'Mavs'].index

Int64Index([0, 1], dtype='int64')

We can see that the team name is equal to â€˜Mavsâ€™ at rows indices 0 and 1.

We can also get the row numbers where the team name is in a certain list of team names:

#get row numbers where 'team' is equal to Mavs or Spurs
filter_list = ['Mavs', 'Spurs']

#return only rows where team is in the list of team names
df[df.team.isin(filter_list)].index

Int64Index([0, 1, 2], dtype='int64')

We can see that the team name is equal to â€˜Mavsâ€™ or â€˜Spursâ€™ at rows indices 0,Â 1, and 2.

## Example 2: Get a Single Row Number

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
'assists': [5, 7, 7, 9, 12],
'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

If you know that only one row matches a certain value, you can retrieve that single row number using the following syntax:

#get the row number where team is equal to Celtics
df[df['team'] == 'Celtics'].index[0]

3

We can see that team is equal to â€˜Celticsâ€™ at row index numberÂ 3.

## Example 3: Get Sum of Row Numbers

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
'assists': [5, 7, 7, 9, 12],
'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

If you want to know the total number of rows where a column is equal to a certain value, you can use the following syntax:

#find total number of rows where team is equal to Mavs
len(df[df['team'] == 'Celtics'].index)

2

We can see that team is equal to â€˜Mavsâ€™ in a total ofÂ 2Â rows.