Cálculo del número de elementos únicos en cada columna de un dataframe

Para el cálculo del número de elementos únicos existentes en cada columna de un dataframe df vamos a utilizar una función anónima con lambda en la que se aplique la función de pandas "nunique". Ésta, aplicada a una serie pandas, devuelve el resultado que nos interesa:

df.apply(lambda x: x.nunique())

Enviado por admin el Lun, 03/12/2018 - 21:28

Cálculo del número de NaN por columna en un dataframe

Para calcular el número de NaN que hay en cada una de las columnas de un dataframe df vamos a hacer uso del método "isnull" de pandas. Éste método detecta valores NaN en arrays numéricos y valores "None" o "NaN" en arrays de objetos, devolviendo una estructura semejante a la de entrada (un dataframe en este ejemplo) en el que cada elemento se sustituye por "True" o "False" en el caso de que se trate de un NaN o no.

Enviado por admin el Lun, 03/12/2018 - 21:27

Comprobación del tipo de las columnas de un dataframe

En este sencillo escenario queremos comprobar el tipo de los datos contenidos en un dataframe "df". Para ello podemos ejecutar simplemente la siguiente instrucción:

df.dtypes

Si deseamos recorrer las columnas para realizar con ellas una acción diferente en función del tipo de la misma, podemos recorrerlas con un bucle for:

for c in df.columns:
    print(c, df[c].dtype)

Enviado por admin el Lun, 03/12/2018 - 21:26

Codificación de las columnas de tipo "object" de un dataframe

Para codificar las columnas de un dataframe vamos a recorrerlas comprobando su tipo. En el caso de ser "object" la mostramos en pantalla y la codificamos con LabelEncoder (hay otras formas de ejecutar esta codificación). En el siguiente código se entrena ("fit") el codificador "LabelEncoder" y se aplica ("transform") a la columna en dos pasos, aunque podría hacerse con un solo paso, hacienod uso del método "fit_transform": 

Enviado por admin el Lun, 03/12/2018 - 21:26

Extracción de un conjunto de valores de un diccionario

Si deseamos extraer un conjunto de valores de un diccionario conociendo sus claves, podemos evitar recurrir a un bucle for utilizando la función map.

Para ver un ejemplo, supongamos el siguiente diccionario (del que extraer los valores):

d = {     "a":1,
    "b":2,
    "c":3,
    "d":4
}

Y la siguiente lista (conteniendo las claves cuyos valores se desea extraer):

l = ["a", "b", "c", "d"]

Enviado por admin el Lun, 03/12/2018 - 21:25

Creación de matriz de imágenes

En este escenario tenemos un array de imágenes que queremos mostrar en una matriz. Para ello recurrimos a la función plt.subplots, extraemos los ejes creados y asociamos cada imagen a un eje.

Comenzamos cargando los paths de las imágenes:

image_paths = glob("C:/Mis Imagenes/*jpg") # Cargamos los paths de las imágenes

A continuación cargamos las imágenes en el array images, convirtiéndolas (opcionalmente) en blanco y negro y redimensionándolas:

file_size = 256

Enviado por admin el Lun, 03/12/2018 - 21:21

Creación de datos de entrenamiento aleatorios para clasificación con Keras

Podemos crear datos de entrenamiento y validación ficticios para entrenar una red neuronal para clasificación creada con Keras muy fácilmente. Debemos concretar:

  • El número de muestras a generar para el conjunto de entrenamiento y para el conjunto de validación, que supondremos igual en este ejemplo.
  • El número de características que tendrán ambos conjuntos.
  • El número de clases a las que pertenecen las muestras generadas.

Comencemos importando las librerías involucradas:

Enviado por admin el Lun, 03/12/2018 - 21:21

Supresión de avisos de obsolescencia

En ocasiones, Python nos devuelve un aviso de obsolescencia ("deprecation warnings") relativo a alguna función, indicándonos, por ejemplo, que cierto comportamiento de la misma cambiará en futuras versiones de la librería que corresponda. Si esto sucede dentro de un bucle, podemos encontrarnos con decenas, centenares o miles de avisos. Para suprimir éstos, podemos recurrir a la librería warnins, añadiendo el siguiente código antes de la rutina que genera los avisos:

import warnings
warnings.filterwarnings("ignore", category = DeprecationWarning)

Enviado por admin el Lun, 03/12/2018 - 21:19

Eliminación de un dataframe de filas o columnas conteniendo valores que representan NaN

Si en un dataframe los valores nulos (NaN) han sido sustituidos por otro valor, podemos seguir eliminando las filas o columnas que los contienen si realizamos un sencillo reemplazo que sustituya el valor en cuestión por valores nulos. Así, en el siguiente ejemplo se supone que el dataframe df contiene valores nulos representados por -1, y que se desea eliminar las filas que los contienen:

df.replace(-1, np.NaN).dropna()

Enviado por admin el Lun, 03/12/2018 - 20:36

Gráfica tipo "box plot" desagregando una característica numérica según otra categórica

Si, en un dataframe pandas, tenemos una característica numérica y otra categórica, podemos mostrar una gráfica de tipo "box plot" desagregando la característica numérica según la categórica utilizando el métoco "boxplot" asociado a todo dataframe:

dataframe.boxplot(característica_numerica, característica_categócia)

Así, en el siguiente ejemplo partimos de un dataframe conteniendo un listado de ventas, indicando el servicio al que corresponde ("A", "B" o "C") y el precio del mismo:

Enviado por admin el Lun, 03/12/2018 - 20:29