Table of Contents
In order to get row numbers in a Pandas DataFrame, you can use the DataFrame.index attribute which returns the index labels of the DataFrame. This will return an array of the row numbers in the DataFrame. You can also use the DataFrame.iterrows() method to iterate over the rows of the DataFrame and return the row numbers.
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
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.
How to Find Unique Values in Multiple Columns in Pandas
How to Filter a Pandas DataFrame on Multiple Conditions
How to Count Missing Values in a Pandas DataFrame