Python

Expansión de listas de valores en dataframes con pandas

En ciertas ocasiones, tras la importación de un conjunto de datos, puede ser que uno de los registros de un dataframe contenga listas de valores en lugar de un único valor. Generalmente, para poder trabajar con estos valores es necesario convertir las listas en series. Esta transformación es una tarea trivial cuando solamente se ha de realizar para un único registro. En el caso de trabajar con un datafreame para la expansión de listas de valores es necesario emplear el método apply de los objetos de pandas.

Creación de un conjunto de datos

Inicialmente se ha de crear un conjunto de datos para procesar. Por ejemplo, se puede crear un dataframe con tres registros con diferentes listas empleado las siguientes líneas de código:

import pandas as pd

data = {'values': [['Shpola', 'Cocobeach', 'Haixing', 'Biaoshan'],
                  ['Comedy', 'Action', 'Drama', 'War'],
                  ['Oil', 'Juice', 'Apple', 'Potatoes']]}
df = pd.DataFrame(data)

Se puede apreciar que en cada uno de los registros del dataframe existe un vector con una lista de elementos. Esto hace que sea difícil trabajar con estos datos.

Procesado de las listas de valores con pandas

La expansión de una lista de valores en una serie se puede conseguir con el método pd.Series. Para aplicar este método a todos los registros de un dataframe se puede utilizar el método apply de los objetos de pandas. La expansión del dataframe anterior se puede conseguir con el siguiente código:

tags = df['values'].apply(pd.Series)

Ahora es necesario renombrar las columnas del nuevo dataframe con un nombre que sea significativo. Esto se puede conseguir con la siguiente línea de código:

features = features.rename(columns = lambda x : 'feature_' + str(x))

Los resultados obtenidos se pueden concatenar con los valores anteriores. Para esto solamente se ha de emplear el método concat tal como se muestra a continuación.

pd.concat([df[:], features[:]], axis=1)

Obteniéndose como resultado la siguiente figura.

Conclusiones

En esta entrada se ha visto la forma de utilizar el método apply en pandas para realizar una operación sobre todos los registros de un dataframe. En esta ocasión se ha visto como expandir una lista de valores.

Imágenes: Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

1 día ago

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

6 días ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

1 semana ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

2 semanas ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

2 semanas ago

Analytics Lane lanza la versión 1.4 del laboratorio con nuevas herramientas de conversión y modelos avanzados de CLV

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…

3 semanas ago

This website uses cookies.