Analizando datos de Spotify con pandas

Analizando datos de Spotify

El mercado musical se encuentra en una continua expansión a escala mundial. Solo con observar las pistas con mayor popularidad en el Top 50 Global de Spotify, se destaca que las canciones trascienden idiomas y fronteras impactando a las personas a lo largo del planeta. 

En esta oportunidad, vamos a realizar un análisis de datos con información proveniente de Spotify, plataforma que ofrece servicios multimedia para la reproducción de música vía streaming. Cabe estacar que la plataforma define a las canciones según un sistema de características de audio y brinda acceso a estos datos través de su propia API (Spotify for Developers).

Para facilitar el acceso a la información se descargaron los datos a partir de Kaggle en el siguiente enlace. Este archivo cuenta con información consolidada hasta el 2021, recuperando aproximadamente 6000 canciones. 

¿Por qué pandas nos ayuda para el análisis de datos? 

Pandas es una biblioteca de código abierto de Python que permite realizar tareas de exploración, limpieza y análisis de datos. En su interior, se manejan los DataFrames de pandas que permite trabajar con datos estructurados, por lo que se puede considerar a este objeto como una hoja de cálculo altamente optimizada. 

Adicionalmente, esta biblioteca permite cargar archivos de diversos tipos, operar sobre series temporales, realizar cálculos estadísticos, manipular valores faltantes, combinar varias fuentes de información, crear visualizaciones y otros procesos cotidianos al analizar datos. 

Datos de Spotify y pandas 

Posterior a la carga del conjunto de datos en un DataFrame (denominado “df”), se implementaron algunas funciones útiles al trabajar con pandas: 

  1. Contar el número de filas y columnas 

El atributo shape retorna una tupla con dos elementos (número de filas, número de columnas). Al ejecutar este proceso se evidenció que el conjunto de datos cuenta con 586.672 canciones recuperadas de la plataforma Spotify.

  1. Mostrar en pantalla el DataFrame 

El método head por defecto muestra las cinco primeras filas del DataFrame permitiendo comprobar que datos fueron cargados correctamente. Mientras que, el método tail muestra las cinco últimas filas. 

  1. Examinar las columnas dentro del DataFrame 

Mediante el uso de columns se devuelve un índice de pandas con los nombres de las columnas del DataFrame. 

Se destacaron los siguientes campos para cada canción: nombre, popularidad, duración en milisegundos, listado de los artistas, año de lanzamiento y características musicales de las canciones. 

  1. Analizar el tipo de dato de las columnas 

Al emplear dtypes se muestran los principales tipos de datos según las particularidades de cada columna: object (cadenas de caracteres), int64 (valores enteros), float64 (valores decimales) y datetime64 (fechas). 

En este ejemplo, campos como el nombre de la canción, los artistas y sus identificadores fueron de tipo object (string); mientras que, aspectos como la popularidad, acústica, energía y duración fueron de tipo numérico.

  1. Análisis descriptivo 

Uno de los métodos más útiles para examinar de forma global cada columna del DataFrame es describe. Según el tipo de datos inferido por pandas en la carga de datos, se retornan las principales estadísticas descriptivas (por defecto para valores numéricos).

Para la columna referente a la popularidad de las canciones se identificó un rango de valores desde cero (valor mínimo) hasta cien (valor máximo). Por su parte, el promedio de la energía fue el valor de 0.54 con respecto a todas las canciones del DataFrame.

  1. Contabilizar los valores únicos 

Por medio de nunique se ejecuta con conteo del número de valores únicos de todas las columnas del DataFrame. Este proceso permite identificar posibles valores duplicados en columnas asociadas a un identificador único de las filas y al mismo tiempo examinar las posibles categorías en campos de tipo cualitativo.

En este caso, la columna explicit contó con dos posibles categorías: contenido explícito y no explícito, codificados con valores de 0 y 1 en el conjunto de datos. 

  1. Ejecutar un conteo por columna 

Al operar sobre Series de pandas el método value_counts facilita el conteo de los valores únicos para la columna indexada del DataFrame.

En el conjunto de datos de Spotify la columna “mode” destaca si la canción se encuentra en modo menor (valor de 0) o mayor (valor de 1). Se identificaron 386.498 pistas en modo mayor y 200.174 en modo menor.

  1. Tomar una muestra 

El uso de sample obtiene una muestra aleatoria del conjunto de datos según el tamaño determinado por el parámetro (n) y retorna dichas filas en pantalla.

En este ejemplo, el proceso aleatorio retornó tres tracks del DataFrame, siendo una de ellas la canción We Are The Champions compuesta por Queen.

  1. Contar valores faltantes 

Implementando en conjunto los métodos isna sum, se contabilizan el número de valores faltantes por cada columna del DataFrame. 

Dentro del conjunto de datos se destacó que únicamente el campo nombre (“name”) contiene 71 valores faltantes (catalogados como NaN o Not a Number). 

  1. Identificar filas con valores más altos o pequeños 

Por medio del uso del método nlargest se retornan un número de filas predeterminadas (de acuerdo al parámetro “n”), sí aquellos registros poseen los valores más altos con respecto al campo señalado (parámetro “columns”).

En este análisis, se identificó que entre las canciones con una mayor popularidad se encontraron: Peaches (Justin Bieber), Drivers Licence (Olivia Rodrigo), Astronaut In The Ocean (Masked Wolf) y Save Your Tears (The Weeknd). 

Una lógica similar aplica con el método nsmallest para mostrar aquellos valores más pequeños dentro del conjunto de datos. 

Esperamos que hayas disfrutado del artículo y puedas implementar estas funcionalidades en tu trabajo diario. Adicionalmente, te recomendamos compartir el artículo para ampliar la difusión del manejo de Python como herramienta para el análisis de datos. En una próxima oportunidad aplicaremos técnicas para profundizar en el uso de pandas para la limpieza y manipulación de datos. 

Fuentes de consulta: 

  • McKinney, W., & Team, P. D. (2015). pandas: powerful Python data analysis toolkit. Pandas—Powerful Python Data Analysis Toolkit, 1625. 
  • Spotify Dataset 1922-2021 – Kaggle Datasets (2021). Recuperado de: https://www.kaggle.com/yamaerenay/spotify-dataset-19212020-160k-tracks 

¿Quieres iniciarte con pandas? Con estos cursos podrás introducirte el uso del lenguaje Python enfocado en la Ciencia de Datos. A partir de la comprensión de los tipos de datos, operaciones y colecciones de datos como fundamentos para el desarrollo de código. Por medio de la ejecución de librerías como NumPy y Pandas se emplearán acciones para el tratamiento y análisis de los datos, ejecutando procesos de recopilación, limpieza, exploración e interpretación de las fuentes de información.



Autor : Paúl Córdova Vargas

Coordinador de productos en handytec Academy. Economista con mención en econometría y Máster en Data Science para Finanzas. Cursó sus estudios de tercer nivel en la Pontificia Universidad Católica del Ecuador, sede Quito. También sus estudios de cuarto nivel lo realizó en el Colegio Universitario de Estudios Financieros, campus Madrid. Tiene experiencia en consultoría en el sector empresarial-financiero implementando modelos enfocados en la segmentación de clientes y modelos predictivos de Machine Learning.  

Deja un comentario