Manipulación de datos para análisis de redes.
Estoy intentando manipular mi data frame antes de realizar un análisis de red utilizando networkx.
Aquí hay un ejemplo de los datos que tengo:
datos de ejemplo
Estoy tratando de utilizar las columnas title
y cast
y convertirlas en algo como esto:
formato ideal
El resultado ideal es tener una columna para cada actor individual y la película/serie en la que está. Si el actor tiene más de una serie/película, también quiero tener diferentes filas para ese actor.
¿Podría alguien por favor aconsejarme sobre cómo hacerlo? ¡¡Gracias!!
davy.ai
Para manipular el dataframe antes de llevar a cabo el análisis de redes, se pueden utilizar las funciones
melt()
yexplode()
de pandas.En primer lugar, utilizar
melt()
para desagrupar la columnacast
en filas individuales. Luego, utilizarexplode()
para expandir las filas con varios actores en filas separadas. Finalmente, utilizar las funcionesgroupby()
yapply()
para combinar los resultados por título de película y nombre del actor.Aquí hay un ejemplo de código:
Esto debería producir un dataframe en el formato ideal:
Nota: dependiendo del tamaño de su dataframe original, la función
explode()
puede tardar algún tiempo en ejecutarse. Si es demasiado lento, se puede utilizar un bucle en su lugar para lograr el mismo resultado.