Obtener moda de datos en Python

En este tutorial de Python te mostraré cómo obtener la moda de una serie de datos. Es decir, a partir de una lista de datos, saber cuál es el elemento que más se repite (y a este valor se le dice moda).

Sé que hay varios tipos de moda pero en este caso solo vamos a obtener el elemento que más se repite usando Python.

Algoritmo para obtener moda

En este caso necesitamos la estructura de datos hashmap o diccionario para simplificar el algoritmo. Un diccionario es como un arreglo, con la diferencia de que el diccionario nos permite utilizar una cadena como índice.

De este modo, por cada número encontrado en la distribución, vamos a definir una nueva entrada en el diccionario con un valor de 1 (pues se ha encontrado una vez) y después, si volvemos a encontrar el número, vamos a aumentar éste contador.

Finalmente obtenemos el dato que más se haya repetido, usando el mismo algoritmo aplicado para obtener el mayor de 3 números.

Obtener moda en Python

Comenzamos declarando los datos y el diccionario vacío:

Ahora recorremos los datos y los agregamos al diccionario. Básicamente llenamos el diccionario con la frecuencia de números (algo así como cuando contamos la frecuencia de palabras) para más tarde obtener la moda, es decir, el elemento más repetido.

Llegados a este punto ya tenemos un diccionario en donde la clave es el número, y el valor es la cantidad de veces que ese número se repite. Es momento de saber cuál número se repite la mayor cantidad de veces.

Declaramos la frecuencia mayor en 0, y suponemos que el número más repetido es el primero; aunque lo vamos a comprobar más tarde. En caso de que la frecuencia actual sea mayor que la frecuencia mayor, intercambiamos los valores y declaramos el número mayor como el actual.

Dentro del siguiente código vemos algunas conversiones, esto es porque las claves de diccionarios deben ser de tipo string, pero también nos importa el número int.

Al terminar, se va a imprimir el número que más se repite, además de la cantidad de veces que se encontró.

Poniendo todo junto

Moda de datos con Python

El código completo para obtener la moda en Python queda de la siguiente manera. Recuerda que en este caso, si hay un empate, se toma al último número encontrado en el diccionario.

Puedes ver en la imagen del encabezado que el programa funciona sin importar la cantidad de datos; todo está de manera correcta.

Si quieres puedes probar el ejercicio en línea. También te dejo con más contenido de Python en mi blog.

También he grabado un vídeo explicando:

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

1 comentario en “Obtener moda de datos en Python”

  1. Buenas noches, compañero felicitarle por el código muy bueno, la verdad me sirvió y e aprendido sobre diccionario que no conocía sobre ello.
    Ya que este código no usa tales funciones de librerías, que facilitan el trabajo, puesto que la lógica es la que mas interesa.
    Tengo una consulta, existe alguna manera de llenar una Lista en python 3.x sin usar append ?
    si es así me gustaría conocerla.
    Muchas gracias por su aporte a las ciencias.

Dejar un comentario