I currently have a dataframe called df
and it's sample output is below:
I believe the Name
column is being read in as the row index which I don't want. My desired dataframe would look like this:
As such, I tried the following code:
df = df.reset_index()
But the output is wrong ... it looks like this:
How can I get my desired df output?
Your dataframe:
>>> df
Name Score Age Address
Abbott value value value
Aaron value value value
Johnny value value value
Paul value value value
Sam value value value
Check row and column indexes:
>>> df.index
Index(['Abbott', 'Aaron', 'Johnny', 'Paul', 'Sam'], dtype='object')
>>> df.columns
Index(['Score', 'Age', 'Address'], dtype='object', name='Name')
As you can see, Name
is not the index name but the name of the data columns:
>>> print(df.index.name)
None
>>> print(df.columns.named)
Name
Now swap the names:
>>> df.index.name, df.columns.name = df.columns.name, df.index.name
>>> print(df.index.name)
Name
>>> print(df.columns.name)
None
>>> df
Score Age Address
Name # <- name of data index
Abbott value value value
Aaron value value value
Johnny value value value
Paul value value value
Sam value value value
>>> df.reset_index()
Name Score Age Address
0 Abbott value value value
1 Aaron value value value
2 Johnny value value value
3 Paul value value value
4 Sam value value value
To fix it, @QuangHoang suggested you:
>>> df.rename_axis(columns=None, index='Name').reset_index()
Name Score Age Address
0 Abbott value value value
1 Aaron value value value
2 Johnny value value value
3 Paul value value value
4 Sam value value value