How To Convert a Column to Row Name/Index in Pandas?

Pandas has a method set_index to covert a column in Pandas dataframe into rowname or row index. Let us see an example of converting a column name into rowname in Pandas.

Let us load pandas as “pd”.

import pandas as pd

Let us use real-world gapminder data from vega_datasets.

from vega_datasets import data
gapminder =data.gapminder_health_income()
print(gapminder.head())
       country  income  health  population
0  Afghanistan    1925   57.63    32526562
1      Albania   10620   76.00     2896679
2      Algeria   13434   76.50    39666519
3      Andorra   46577   84.10       70473
4       Angola    7615   61.00    25021974

Convert a Column to Row Name

Let us convert the “country” column into row name or index of the dataframe gapminder using the method set_index() .

gapminder = gapminder.set_index("country")

By default, the medthod set_index returns a new pandas object. Here, we have assigned the new data frame to same variable “gapminder”. One can also use inplace=TRUE to make the changes in place.

	income	health	population
country			
Afghanistan	1925	57.63	32526562
Albania	10620	76.00	2896679
Algeria	13434	76.50	39666519
Andorra	46577	84.10	70473
Angola	7615	61.00	25021974

Note that the resulting Pandas dataframe’ row index has name, “country”. If you don’t want to have name for the index, we can use either

gapminder.index_name = None

or

del gapminder.index_name

Now you will have dataframe with a column converted to rowname with no index name.

	income	health	population
Afghanistan	1925	57.63	32526562
Albania	10620	76.00	2896679
Algeria	13434	76.50	39666519
Andorra	46577	84.10	70473
Angola	7615	61.00	25021974