Pandas: How to Reset Index After Using dropna()


You can use the following basic syntax to reset an index of a pandas DataFrame after using the dropna() function to remove rows with missing values:

df = df.dropna().reset_index(drop=True)

The following example shows how to use this syntax in practice.

Example: Reset Index in Pandas After Using dropna()

Suppose we have the following pandas DataFrame that contains information about various basketball players:

import pandas as pd
import numpy as np

#create dataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   'points': [18, np.nan, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, np.nan, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, np.nan, 12]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A    18.0      5.0      11.0
1    B     NaN      7.0       8.0
2    C    19.0      7.0      10.0
3    D    14.0      9.0       6.0
4    E    14.0     12.0       6.0
5    F    11.0      NaN       5.0
6    G    20.0      9.0       NaN
7    H    28.0      4.0      12.0

Now suppose we use the dropna() function to drop all rows from the DataFrame that have a missing value in any column:

#drop rows with nan values in any column
df = df.dropna()

#view updated DataFrame
print(df)

  team  points  assists  rebounds
0    A    18.0      5.0      11.0
2    C    19.0      7.0      10.0
3    D    14.0      9.0       6.0
4    E    14.0     12.0       6.0
7    H    28.0      4.0      12.0

Notice that the index still contains the original index values for each row.

To reset the index after using the dropna() function, we can use the following syntax:

#drop rows with nan values in any column
df = df.dropna().reset_index(drop=True)

#view updated DataFrame
print(df)

  team  points  assists  rebounds
0    A    18.0      5.0      11.0
1    C    19.0      7.0      10.0
2    D    14.0      9.0       6.0
3    E    14.0     12.0       6.0
4    H    28.0      4.0      12.0

Notice that each of the rows with missing values have been removed and the index values have been reset.

The index values now range from 0 to 4.

Additional Resources

The following tutorials explain how to perform other common tasks in pandas:

How to Print Pandas DataFrame with No Index
How to Filter by Index Value in Pandas
How to Use First Column as Index in Pandas

Leave a Reply

Your email address will not be published.