by Yanxia Zou
Este proyecto contiene análisis exploratorio de datos (EDA) y diseño de cuadro de mando basado en los 10,000 mejores libros de todos los tiempos de la lista "Best Books Ever" de Goodreads. El objetivo es proporcionar perspectivas sobre tendencias literarias, comportamiento de usuarios y métricas de popularidad para apoyar decisiones estratégicas en marketing editorial.
- Realizar limpieza y preprocesamiento exhaustivo de datos literarios
- Diseñar un modelo dimensional para análisis de mercado
- Identificar patrones de popularidad y valoración de libros
- Crear visualizaciones que faciliten la toma de decisiones de marketing
- Analizar tendencias por género, autor y editorial
- 10,000 registros de libros
- 31 variables originales (reducidas a 16 relevantes)
- Incluye valoraciones, reseñas, información bibliográfica y premios
Las columnas del dataset son id, title, link, series, cover_link, author, author_link, rating_count, review_count, average_rating, five_star_ratings, four_star_ratings, three_star_ratings, two_star_ratings, one_star_ratings, number_of_pages, date_published, publisher, original_title, genre_and_votes, isbn, isbn13, asin, settings, characters, awards, amazon_redirect_link, worldcat_redirect_link, recommended_books, books_in_series y description.
De acuerdo con las columnas identificadas, podemos clasificarlas en las siguientes categorías: variables de identificación, variables de enlace, variables bibliográficas (que ofrecen información sobre el libro), variables de contenido, variables de métricas de valoración, y variables de información complementaria.
Variables de identificación
id: Identificador único asignado por Goodreads a cada libroisbn: International Standard Book Number (formato antiguo de 10 dígitos)isbn13: International Standard Book Number (formato nuevo de 13 dígitos)asin: Amazon Standard Identification Number
Variables de enlace
link: URL que dirige a la página del libro en Goodreadscover_link: URL de la imagen de portada del libroauthor_link: URL a la página del autor en Goodreadsamazon_redirect_link: URL para comprar el libro en Amazonworldcat_redirect_link: URL a la página del libro en WorldCat (catálogo mundial de bibliotecas)
Variables bibliográficas
title: Título del libroauthor: Nombre del autor o autores del librooriginal_title: Título original del libronumber_of_pages: Número de páginas del librodate_published: Fecha de publicación del libropublisher: Editorial que publicó el libroseries: Indica si el libro forma parte de una seriegenre_and_votes: Géneros literarios asignados y número de votos para cada género
Variables de contenido
settings: Ubicación geográfica/contextos/ambientación donde se desarrolla la historiacharacters: Personajes principales que aparecen en el librodescription: Breve sinopsis o descripción del contenido del libro.
Variables de métricas de valoración
average_rating: Valoración media obtenidarating_count: Número total de valoraciones recibidasreview_count: Número total de reseñas escritas por los usuarios.five_star_ratings: Cantidad de valoraciones de 5 estrellasfour_star_ratings: Cantidad de valoraciones de 4 estrellasthree_star_ratings: Cantidad de valoraciones de 3 estrellastwo_star_ratings: Cantidad de valoraciones de 2 estrellasone_star_ratings: Cantidad de valoraciones de 1 estrella
Variables de información complementaria
awards: Premios literarios recibidos por el librorecommended_books: Identificadores de los libros recomendados relacionados con este librobooks_in_series: Identificadores de otros libros que forman parte de la misma serie
De acuerdo con la sección "descripción de variables", los valores nulos detectados, los tipos de datos de las variables identificados y la relevancia de las variables para el análisis en nuestro negocio, podemos descartar aquellas columnas que no aportan valor a nuestro análisis:
id,isbn,isbn13yasin: son variables que identifican de forma única los libros, pero no son relevantes para realizar análisis.link,cover_link,author_link,amazon_redirect_linkyworldcat_redirect_link: son variables que almacenan URLs, las cuales no aportan información útil para el análisis ni permiten extraer métricas.
number_of_pages: La variablenumber_of_pagesrepresenta el número de páginas de un libro físico. Sin embargo, en el dataset se incluyen también audiolibros o versiones en audio CD, como por ejemplo Dead Man's Folly de Agatha Christie, narrado por David Suchet, que figura con solo 6 páginas. Por lo tanto, es más adecuado descartar esta variable.
original_title: La variableoriginal_titlenos lleva a pensar que contiene los títulos originales de los libros; sin embargo, los valores están en inglés, por lo que esta columna duplica la información detitle. Además, presenta 2.460 valores faltantes, lo que representa un 24,6% del total de registros, lo que indica que se trata de una columna con datos de baja calidad.settings,charactersydescription: son de tipo string y difíciles de analizar cuantitativamente. En la variabledescriptionontiene texto extenso con comas y signos de puntuación que pueden generar problemas al procesar los datos. Estas variables requieren técnicas de procesamiento de lenguaje natural (NLP) para ser analizadas adecuadamente.recommended_books,books_in_series: podrían parecer útiles, pero en realidad solo contienen identificadores de Goodreads que no aportan valor relevante para el análisis.
Variables Conservadas:
- Variables bibliográficas:
title: Es de tipo string, pero debe ser recodificado porque contiene registros con caracteres especiales.author: Es un campo multivalor, por lo que debe ser gestionada adecuadamente. Puede transformarse en una lista, separarse en múltiples columnas (menos flexible) o dividirse en múltiples filas (una por cada autor y libro). En este caso, optamos por transformarla en una lista.date_published: Es de tipo string y debe ser convertido a datetime y normalizado. Sin embargo, debido a que en muchos casos la informaciónn de mes y de día no está disponible, se ha optado por extraer únicamente el año como dato temporal principal que sería un tipo int. Y se cambiará el nombre de columna ayear_published. Además, se eliminarán las filas que contienen valores nulos (1.66% del total).publisher: Se sustituirá los valores faltantes por la cadena "Unknown".series: Se sustituirá los valores faltantes por la cadena "Standalone" (Independiente).genre_and_votes: Se transformará en dos columnas: una que contendrá el género del libro y otra que almacenará el número de votos. Al ser un campo multivalor, es necesario manejarlo adecuadamente;en este caso, transformamos en lista de género y votos. Y se sustituirá los valores nulos por "No genre 0" que significa sin género y 0 voto.
- Variables de métricas de valoración:
average_ratingrating_countreview_countfive_star_ratingsfour_star_ratingsthree_star_ratingstwo_star_ratingsone_star_ratings
- Variables de información complementaria:
awards: Es un campo multivalor. En este caso, se transformará en una lista y, para manejar los valores nulos, los sustituiremos por la cadena "No awards" (No premiado).
- Detección y tratamiento de valores nulos
- Identificación de valores atípicos y bestsellers
- Normalización de caracteres especiales en texto
- Conversión y estandarización de tipos de datos
- Extracción de años de publicación desde formatos inconsistentes
- Separación de campos multivalor (autores, géneros, premios)
- Creación de categorías de popularidad por niveles
- Validación de consistencia entre métricas de valoración
Distribución de Popularidad (por valoraciones)
Solo 289 libros superan los 500.000–5.000.000 de valoraciones, por lo que pueden considerarse best-sellers históricos. El máximo de valoraciones es 6.801.077, correspondiente a Harry Potter and the Philosopher’s Stone. La distribución de rating_count está fuertemente sesgada a la derecha. Aunque la media (18.737) es alta, la mediana (2.310) indica que la mayoría de los libros tienen un número moderado de valoraciones. La mayor concentración se encuentra entre 1.000 y 99.000 valoraciones (3.908 libros), seguida por el rango de 100 a 999 (2.148 libros), mientras que los libros con menos de 100 valoraciones son minoritarios (1.551)
Distribución de Popularidad (por reseñas)
La mayoría de los libros del conjunto presenta pocas reseñas: casi 4.100 tienen entre 100 y 999, y más de 3.800 cuentan con menos de 100. En contraste, solo 3 libros superan las 100.000 reseñas (The Fault in Our Stars, The Girl on the Train y Harry Potter and the Philosopher’s Stone), lo que evidencia una alta concentración de popularidad en pocos títulos. Este patrón refleja una distribución altamente desigual, donde la atención de los lectores se focaliza en unos pocos libros muy populares, mientras que la mayoría recibe una visibilidad limitada. Además, 289 libros no registran ninguna reseña.
Correlación Rating vs Review
Los libros con muchas valoraciones suelen tener también muchas reseñas, aunque estos casos son excepcionales. Solo 1 libro supera los 5 millones de valoraciones y 100.000 reseñas, mientras que 2 libros tienen entre 1 y 5 millones de valoraciones con más de 100.000 reseñas, sumando un total de 3 títulos con máxima popularidad en ambas métricas. La mayoría se concentra en rangos medios o bajos: 3.126 libros tienen entre 1.000 y 9.900 valoraciones y entre 100 y 999 reseñas, y 1.279 libros se sitúan en el nivel más bajo para ambas métricas. Además, 13 libros no registran ninguna valoración ni reseña.
- Tipo de Tabla de Hechos Snapshot (Instantánea): Captura el estado de los libros en un momento específico.
- Granularidad Nivel libro-snapshot: Cada registro representa un libro con sus métricas acumuladas.
- Tasa de Refresco Trimestral: Para seguir evolución del mercado.
- Métricas
- Diseño de dimensiones
- Usuario final: Responsable del departamento de Marketing
- Propósito: Facilita la identificación de libros con alto potencial comercial, géneros preferidos y autores prometedores. Esto permite optimizar campañas, reducir riesgos en inversiones promocionales y anticiparse a las tendencias del mercado.
- Frecuencia: Actualización trimestral (push) con alertas adicionales si se detectan cambios significativos. También disponible bajo demanda (pull) para consultas específicas.
- Adopción: Se integrará como herramienta clave en la planificación de campañas, apoyando decisiones estratégicas.
Visión General
Tendencias de reseñas y valoraciones
Editoriales Líderes
Preferencias Literarias
Segmentación Popularidad-Satisfacción
Caso de éxito
Puedes consultar el notebook en Google Colab para más detalles aquí.