How can one drop the index column in Pandas?

To drop the index column in Pandas, one can use the “drop” method and specify the index column name as the parameter. This will remove the specified column from the dataset and reset the index to the default numerical index. Alternatively, one can use the “reset_index” method to reset the index without dropping any columns. Both methods allow for easy manipulation of the index column in Pandas.

Drop the Index Column in Pandas (With Examples)


Occasionally you may want to drop the index column of a pandas DataFrame in Python.

Since pandas DataFrames and Series always have an index, you can’t actually drop the index, but you can reset it by using the following bit of code:

df.reset_index(drop=True, inplace=True)

For example, suppose we have the following pandas DataFrame with an index of letters:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#set index of DataFrame to be random letters
df = df.set_index([pd.Index(['a', 'b', 'd', 'g', 'h', 'm', 'n', 'z'])])

#display DataFrame
df

        points	assists	 rebounds
a	25	5	 11
b	12	7	 8
d	15	7	 10
g	14	9	 6
h	19	12	 6
m	23	9	 5
n	25	9	 9
z	29	4	 12

We can use the reset_index() function to reset the index to be a sequential list of numbers:

#reset index
df.reset_index(drop=True, inplace=True)

#display DataFrame
df

        points	assists	 rebounds
0	25	5	 11
1	12	7	 8
2	15	7	 10
3	14	9	 6
4	19	12	 6
5	23	9	 5
6	25	9	 9
7	29	4	 12

Notice that the index is now a list of numbers ranging from 0 to 7.

As mentioned earlier, the index is not actually a column. Thus, when we use the shape command, we can see that the DataFrame has 8 rows and 3 columns (as opposed to 4 columns):

#find number of rows and columns in DataFrame
df.shape

(8, 3)

Bonus: Drop the Index When Importing & Exporting

Often you may want to reset the index of a pandas DataFrame after reading it in from a CSV file. You can quickly reset the index while importing it by using the following bit of code:

df = pd.read_csv('data.csv', index_col=False) 

And you can make sure that an index column is not written to a CSV file upon exporting by using the following bit of code:

df.to_csv('data.csv', index=False) 

Additional Resources

How to Drop Rows with NaN Values in Pandas
How to Sort Values in a Pandas DataFrame

x