Seleccionar una columna como índice en Pandas DataFrame
Por defecto se crea un índice para el DataFrame. Sin embargo, puede seleccionar una columna específica de DataFrame como índice, si es necesario.
Para seleccionar una columna como índice para un DataFrame, utilice la función DataFrame.set_index()
, con el nombre de la columna pasado como argumento.

También puede configurar MultiIndex con múltiples columnas en el índice. En este caso, pase la matriz de nombres de columnas requeridas para el índice, al método set_index()
.
Sintaxis de set_index()
La sintaxis de set_index()
para configurar una columna como índice es:
miDataFrame.set_index('nombre_columna')
Donde miDataFrame
es el DataFrame para el que desea establecer la columna nombre_columna
como índice.
Para configurar MultiIndex, utilice la siguiente sintaxis.
miDataFrame.set_index(['nombre_columna_1', 'nombre_columna_2'])
Puede pasar tantos nombres de columnas como sea necesario.
Tenga en cuenta que el método set_index()
no modifica el DataFrame original, sino que devuelve el DataFrame con la columna establecida como índice.
Ejemplo 1: Establecer una columna como índice en un DataFrame de Pandas
En este ejemplo, tomamos un DataFrame, e intentamos establecer una columna como índice.
import pandas as pd
#inicializar un dataframe
df = pd.DataFrame(
[[21, 'Amol', 72, 67],
[23, 'Lini', 78, 69],
[32, 'Kiku', 74, 56],
[52, 'Ajit', 54, 76]],
columns=['rollno', 'name', 'physics', 'botony'])
print('DataFrame con índice por defecto\n', df)
#establecer la columna como índice
df = df.set_index('rollno')
print('\nDataFrame con una columna como índice\n',df)
Salida:
DataFrame con índice por defecto
rollno name physics botony
0 21 Amol 72 67
1 23 Lini 78 69
2 32 Kiku 74 56
3 52 Ajit 54 76
DataFrame con una columna como índice
name physics botony
rollno
21 Amol 72 67
23 Lini 78 69
32 Kiku 74 56
52 Ajit 54 76
La columna rollno
del DataFrame se establece como índice.
Además, observe la salida del DataFrame original y la salida del DataFrame con rollno
como índice. En el DataFrame original, hay una columna de índice separada (primera columna) sin nombre de columna. Pero en nuestro segundo DataFrame, como la columna existente que está actuando como índice, esta tomó el primer lugar.
Ejemplo 2: Establecer MultiIndex para Pandas DataFrame
En este ejemplo, pasaremos múltiples nombres de columnas como una lista al método set_index() para configurar MultiIndex para el Pandas DataFrame.
import pandas as pd
#inicializar DataFrame
df = pd.DataFrame(
[[21, 'Amol', 72, 67],
[23, 'Lini', 78, 69],
[32, 'Kiku', 74, 56],
[52, 'Ajit', 54, 76]],
columns=['rollno', 'name', 'physics', 'botony'])
print('DataFrame con índice por defecto\n', df)
#establecer varias columnas como índice
df = df.set_index(['rollno','name'])
print('DataFrame con índice múltiple\n',df)
Salida:
DataFrame con índice por defecto
rollno name physics botony
0 21 Amol 72 67
1 23 Lini 78 69
2 32 Kiku 74 56
3 52 Ajit 54 76
DataFrame con índice múltiple
physics botony
rollno name
21 Amol 72 67
23 Lini 78 69
32 Kiku 74 56
52 Ajit 54 76
En este tutorial de Pandas, aprendimos a establecer una columna específica del DataFrame como índice.