Robert Johns | 14 Feb, 2025
Fact checked by Jim Markus

Pandas reset_index() | Docs With Examples

The reset_index() method in Pandas is used to reset the index of a DataFrame. It moves the index back to the default integer index and can optionally keep the old index as a column.

Importing Pandas

Before using pd.reset_index(), it's essential you have Pandas installed and imported, and it's standard practice to import it with an alias:

import pandas as pd

Why Use reset_index()?

  • Restore Default Index: When a DataFrame has a custom index (such as a column set as an index), reset_index() helps revert it to the default numeric index.

  • Convert an Index to a Column: If your index contains meaningful data, you might want to move it back into a column for further analysis.

  • After Filtering or Grouping Operations: Some Pandas operations create non-sequential indexes (such as filtering based on conditions or using groupby()). Resetting the index helps restore order.

Basic Syntax

To reset the index of a Pandas DataFrame, you'd typically do the following:

df.reset_index(level=None, drop=False, inplace=False)
  • level: Resets specific index levels (useful for MultiIndex DataFrames).
  • drop: If True, removes the index column instead of adding it back.
  • inplace: If True, modifies the DataFrame in place.

Resetting the Index of a DataFrame

Let's see how reset_index() works in a basic example.

data = {"Name": ["Alice", "Bob", "Charlie"], "Score": [85, 90, 78]}
df = pd.DataFrame(data)
df.set_index("Name", inplace=True)
print("Before reset_index:\n", df)

# Reset index
df_reset = df.reset_index()
print("\nAfter reset_index:\n", df_reset)

Output:

Before reset_index:
         Score
Name         
Alice      85
Bob        90
Charlie    78

After reset_index:
      Name  Score
0   Alice     85
1     Bob     90
2  Charlie     78

Explanation:

  • Before resetting the index, 'Name' is used as the index.

  • After calling reset_index(), 'Name' is moved back to a column, and a new default integer index is assigned.

Dropping the Old Index

Sometimes, we don’t need to keep the old index as a column. Setting drop=True removes it entirely.

df_reset = df.reset_index(drop=True)
print(df_reset)

Output:

   Score
0     85
1     90
2     78

Explanation:

  • The drop=True parameter ensures that the 'Name' index is removed instead of being retained as a column.

Resetting MultiIndex DataFrames

For DataFrames with a hierarchical index (MultiIndex), reset_index() can remove one or more index levels.

df_multi = df.set_index([["A", "B", "C"]])
df_reset_multi = df_multi.reset_index(level=0)
print(df_reset_multi)

Explanation:

  • reset_index(level=0) only resets the first index level ('City'), leaving 'Population' as the new index.

Using inplace=True

To modify the original DataFrame directly without creating a new one, use inplace=True.

df.reset_index(inplace=True)
print(df)

Explanation:

  • This method updates the existing DataFrame instead of returning a modified copy.

Key Takeaways

  • reset_index() is useful for restructuring DataFrames, especially after setting custom indexes.

  • Use drop=True when you don’t need to retain the old index in your Python projects.

  • Works for both single and multi-level indexes.

  • Using inplace=True updates the DataFrame without creating a new one.

Practice Exercise

Here's a simple challenge, open up your Python editor, then create a DataFrame, set an index, reset it, and remove it completely:

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df.set_index("A", inplace=True)
df.reset_index(drop=True, inplace=True)
print(df)

Wrapping Up

The reset_index() method is an essential tool for restructuring Pandas DataFrames. Whether resetting a custom index or handling MultiIndex DataFrames, mastering this method helps keep your data organized. Happy coding!

By Robert Johns

Technical Editor for Hackr.io | 15+ Years in Python, Java, SQL, C++, C#, JavaScript, Ruby, PHP, .NET, MATLAB, HTML & CSS, and more... 10+ Years in Networking, Cloud, APIs, Linux | 5+ Years in Data Science | 2x PhDs in Structural & Blast Engineering

View all post by the author

Subscribe to our Newsletter for Articles, News, & Jobs.

I accept the Terms and Conditions.

Disclosure: Hackr.io is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission.

In this article

Learn More

Please login to leave comments