Cuando trabajamos con Python y scikit-learn necesitamos que todos los datos que vamos a modelizar sean numéricos; si tenemos variables carácter, necesitamos previamente transformarlas a números. La forma más rápida para realizar esta tarea es emplear preprocessing de scikit-learn:

import pandas as pd
dias_dict = {'dia': ['lunes', 'martes', 'viernes', 'miercoles', 'jueves', 'martes', 'miercoles', 'jueves', 'lunes']}
dias_df = pd.DataFrame(dias_dict)
dias_df

Creamos un data frame a partir de un diccionario que se compone de los días de la semana; ahora vamos a codificar las etiquetas con el LabelEncoder de scikit-learn:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(dias_df['dia'])

Podemos listar las clases:

list(le.classes_)

Me gustaría destacar que hay que tener especial cuidado con el orden de las codificaciones porque es un orden lexicográfico, no va por orden de aparición:

dias_codificados = le.transform(dias_df['dia'])
dias_codificados

Ahora ya estamos en disposición de poder emplear scikit-learn para entrenar nuestro modelo. Saludos.