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.

Deja una respuesta