Python - Pandas - Dataframe.set_index - How To Keep The Old Index Column
I have this Dataframe: import pandas as pd df = pd.DataFrame({'Hugo' : {'age' : 21, 'weight' : 75}, 'Bertram': {'age' : 45, 'weight' : 65}, 'D
Solution 1:
Use reset_index first and then set_index:
df = df.reset_index().set_index('age')
print (df)
name weight
age
45 Bertram 65
75 Donald 85
21 Hugo 75
Solution 2:
Adding the append=True and with reset_index
df.set_index('age', append=True).reset_index(level=0)
Out[80]:
name weight
age
45 Bertram 65
75 Donald 85
21 Hugo 75
Solution 3:
Your DataFrame df has name (= 'Bertram', 'Donald', 'Hugo') as index
That is, your df is:
age weight
name
Bertram 45 65
Donald 75 85
Hugo 21 75
You can convert the index (name) into a new column inside your DataFrame df by using the .reset_index() method.
df.reset_index(inplace=True)
name becomes a column and the new index is the standard default integer index:
Your df looks like this now:
Out[1]:
name age weight
0 Bertram 45 65
1 Donald 75 85
2 Hugo 21 75
Now, you can change the index to age with the .set_index() method.
df.set_index('age',inplace=True)
dfis now:
Out[2]:
name weight
age
45 Bertram 65
75 Donald 85
21 Hugo 75
As @jezrael points out above you can do this in a single step, instead of two steps, like this:
df = df.reset_index().set_index('age')
Solution 4:
The below is the most efficient since it appends the new index of age and makes sure its inplace
df.set_index('age',append=True,inplace=True)
Solution 5:
Change the drop variable to False.
df = df.set_index("age", drop=False)
Post a Comment for "Python - Pandas - Dataframe.set_index - How To Keep The Old Index Column"