Pandas reset index is not taking effect
Solution 1
BrenBarn's answer works.
The following also worked via this thread, which isn't a troubleshooting so much as an articulation of how to reset the index:
test = test.reset_index(drop=True)
Solution 2
reset_index
by default does not modify the DataFrame; it returns a new DataFrame with the reset index. If you want to modify the original, use the inplace
argument: df.reset_index(drop=True, inplace=True)
. Alternatively, assign the result of reset_index
by doing df = df.reset_index(drop=True)
.
Solution 3
As an extension of in code veritas's answer... instead of doing del
at the end:
test = test.reset_index()
del test['index']
You can set drop to True
.
test = test.reset_index(drop=True)
Solution 4
I would add to in code veritas's answer:
If you already have an index column specified, then you can save the del, of course. In my hypothetical example:
df_total_sales_customers = pd.DataFrame({'Sales': total_sales_customers['Sales'],
'Customers': total_sales_customers['Customers']}, index = total_sales_customers.index)
df_total_sales_customers = df_total_sales_customers.reset_index()
Union find
Updated on April 25, 2021Comments
-
Union find about 3 years
I'm not sure where I am astray but I cannot seem to reset the index on a dataframe.
When I run
test.head()
, I get the output below:As you can see, the dataframe is a slice, so the index is out of bounds. What I'd like to do is to reset the index for this dataframe. So I run
test.reset_index(drop=True)
. This outputs the following:That looks like a new index, but it's not. Running
test.head
again, the index is still the same. Attempting to uselambda.apply
oriterrows()
creates problems with the dataframe.How can I really reset the index?