• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Pandas: Convertir una columna en el índice

julio 29, 2021 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

pandas

Los DataFrame de Pandas contienen una propiedad especial que son los índices, unos valores inmutables que se asignan a cada una de las filas del conjunto de datos. Al ser inmutables no es posible cambiar un valor específico, pero sí que es posible modificar todos los índices. En esta entrada vamos a ver cómo se pueden convertir una columna en el índice mediante el uso del método set_index().

El método set_index()

Los objetos DataFrame de Pandas cuentan con el método set_index() que tiene la siguiente forma

df.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

en donde las propiedades más importantes son:

  • keys: los nombres de las columnas, pudiendo ser una o varias, que se establecerán como índice del DataFrame.
  • drop: indica si se eliminará la columna del conjunto de datos una vez establecida esta como índice, el valor por defecto es verdadero, por lo que las columnas se eliminarán.
  • append: valor que se indica si la columna se agrega al índice ya existente, por defecto el valor es falso, por lo que el índice actual será reemplazado por la nueva columna.
  • inplace: indica si el método aplica las modificaciones al propio objeto o devuelve una copia modificada del mismo, por defecto el valor es falso, por lo que se obtiene una copia modificada.

Publicidad


Convertir una columna en el índice del DataFrame

Al crear o importar un objeto DataFrame generalmente nos encontramos con la columna de índices que comienza en 0 aumentando una unidad para cada una de las filas. Salvo que se hubiese indicado explícitamente un valor diferente para esta columna.

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)
En Analytics Lane
Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

import pandas as pd

users = {'first_name': ['Montgomery', 'Dagmar', 'Reeba', 'Shalom', 'Broddy', 'Aurelia'],
         'last_name': ['Humes', 'Elstow', 'Wattisham', 'Alen', 'Keningham', 'Brechin'],
         'age': [27, 41, 29, 29, 21, 33],
         'gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Female']}

df = pd.DataFrame(users)
   first_name  last_name  age  gender
0  Montgomery      Humes   27    Male
1      Dagmar     Elstow   41  Female
2       Reeba  Wattisham   29  Female
3      Shalom       Alen   29    Male
4      Broddy  Keningham   21    Male
5     Aurelia    Brechin   33  Female

En el caso de que deseemos usar valor existente en el DataFrame como índice, por ejemplo un identificador, se puede usar el método set_index() para convertir este. Así se puede usar el nombre de los usuarios para crear un nuevo DataFrame con este valor como índice.

dfi = df.set_index('first_name')
dfi
            last_name  age  gender
first_name                        
Montgomery      Humes   27    Male
Dagmar         Elstow   41  Female
Reeba       Wattisham   29  Female
Shalom           Alen   29    Male
Broddy      Keningham   21    Male
Aurelia       Brechin   33  Female

Nótese que en el nuevo conjunto de datos se ha eliminado la columna original. En el caso de que esto no sea esto lo que se desee, es decir, si queremos conservar la columna en el objeto resultante, solamente se tiene que asignar el valor falso a la propiedad drop.

dfi = df.set_index('first_name', drop=False)name')
dfi
            first_name  last_name  age  gender
first_name                                    
Montgomery  Montgomery      Humes   27    Male
Dagmar          Dagmar     Elstow   41  Female
Reeba            Reeba  Wattisham   29  Female
Shalom          Shalom       Alen   29    Male
Broddy          Broddy  Keningham   21    Male
Aurelia        Aurelia    Brechin   33  Female

Convertir varias columnas en el índice del DataFrame

El método set_index() también puede admitir la opción de varias columnas para crear el índice. Para conseguir esto en lugar de una cadena de texto con el nombre de la columna se tiene que pasar como parámetro una lista con el nombre de las columnas a usar. Así se puede crear un nuevo índice usando el nombre y los apellidos de los usuarios.

dfi = df.set_index(['first_name', 'last_name'])
dfi
                      age  gender
first_name last_name             
Montgomery Humes       27    Male
Dagmar     Elstow      41  Female
Reeba      Wattisham   29  Female
Shalom     Alen        29    Male
Broddy     Keningham   21    Male
Aurelia    Brechin     33  Female

Observados que en este caso los índices pasan a ser una lista de tuplas.

dfi.index
MultiIndex([('Montgomery',     'Humes'),
            (    'Dagmar',    'Elstow'),
            (     'Reeba', 'Wattisham'),
            (    'Shalom',      'Alen'),
            (    'Broddy', 'Keningham'),
            (   'Aurelia',   'Brechin')],
           names=['first_name', 'last_name'])

Otra forma de conseguir índices múltiples es agregando una nueva columna a los que ya existen. Lo que se puede conseguir asignando el valor verdadero a la propiedad append.

dfi = df.set_index('first_name', append=True)
dfi
              last_name  age  gender
  first_name                        
0 Montgomery      Humes   27    Male
1 Dagmar         Elstow   41  Female
2 Reeba       Wattisham   29  Female
3 Shalom           Alen   29    Male
4 Broddy      Keningham   21    Male
5 Aurelia       Brechin   33  Female

Publicidad


Realizando las operaciones en memoria

Al trabajar con DataFrame pequeños, como los del ejemplo, no es un problema crear una copia con las modificaciones. Pero esto no es así cuando se trabaja con conjuntos de datos más grandes. Para evitar problemas de memoria en estos casos se puede asignar el valor verdadero a la propiedad inplace, por lo que el objeto original se modificará y el método no devolverá ningún valor.

df.set_index('first_name', inplace=True)
df
            last_name  age  gender
first_name                        
Montgomery      Humes   27    Male
Dagmar         Elstow   41  Female
Reeba       Wattisham   29  Female
Shalom           Alen   29    Male
Broddy      Keningham   21    Male
Aurelia       Brechin   33  Female

En este caso es importante tener cuidado con lo que se hace, ya que la operación no se podrá deshacer al modificarse el conjunto de datos original y no existir una copia en memoria.

Conclusiones

En esta entrada se ha visto cómo usar el método set_index() para convertir una o varias columnas en el índice de un DataFrame. Permitiendo de esta manera modificar los valores de esta propiedad tan importante de los objetos de Pandas. La semana que viene veremos el proceso complementario a este: convertir los índices en una o varias columnas.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 2

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)
  • Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato
  • ¿Media, mediana o moda en variables ordinales? Guía práctica para el análisis de datos
  • Cómo ejecutar JavaScript desde Python: Guía práctica con js2py
  • Cómo generar contraseñas seguras con Python (y entender su nivel de seguridad)
  • Curiosidad: ¿Por qué los datos “raros” son tan valiosos?
  • Detectan vulnerabilidad crítica en MLflow que permite ejecución remota de código
  • ¿Por qué el azar no es tan aleatorio como parece?
  • Cómo crear un Data Lake en Azure paso a paso

Publicado en: Python Etiquetado como: Pandas

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Guía definitiva para trabajar con JSON en SQL Server

noviembre 18, 2025 Por Daniel Rodríguez

Cómo crear un Data Lake en Azure paso a paso

noviembre 13, 2025 Por Daniel Rodríguez

¿Por qué el azar no es tan aleatorio como parece?

noviembre 11, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Guía definitiva para trabajar con JSON en SQL Server publicado el noviembre 18, 2025 | en Herramientas
  • Copiar y pegar Activar copiar y pegar en VirtualBox publicado el mayo 1, 2019 | en Herramientas
  • Cómo calcular el tamaño de la muestra para encuestas publicado el septiembre 9, 2025 | en Ciencia de datos
  • El método de Hare-Niemeyer y su implementación en Python publicado el septiembre 29, 2023 | en Ciencia de datos
  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto