
Público, crítica y taquilla en IMDb
3 minutos de lecturaÚnico proyecto en lengua no inglesa elegido por Streamlit en su web como ejemplo de visualización de datos.
La presentación de este proyecto fue realizada mediante el siguiente dashboard web interactivo: Streamlit EDA-IMDb
que ha sido elegido por el framework para Machine Learning y Data Science Streamlit
como de caso de uso de visualización en su galería de visualización.
Análisis exploratorio de datos | Películas 2014 a 2019
Con la intención de analizar un dataset representativo de todo tipo de películas he acudido al portal IMDb, el más completo a nivel internacional. Y he extraído los datos por dos vías:
1. Tablas relacionales descargadas de IMBd
IMDb ofrece, de manera gratuita, una serie de archivos .csv
que se corresponden con parte la información de su base de datos. De estas tablas he conseguido información como identificador de IMDb, título en español y en su versión original, duración, géneros, rating IMDb, año.
2. Web scrapping portal IMBd
Como los archivos proporcionados por IMDb no contienen información económica de las películas he recogido esta información del propio portal IMDb mediante web scrapping. También era importante el dato de valoración de la crítica, el Metascore que sin ser un dato propio de IMBd sí que se puede visualizar en el portal. Además he recogido información que podría ser relevante más adelante como directores, guionistas, actores y países. Debido a la ingente cantidad de información, he tenido que utilizar parallel para recoger información simultáneamente de varias páginas simultáneamente, una página por núcleo del procesador de mi portátil. La herramienta principal en esta estapa fue Selenium.
117.482 páginas escrapeadas (todas las películas de 2014 a 2020)
3. Data mining y merge de las tablas
El siguiente paso fue limpiar las tablas ya que había muchos registros fake, tanto en las tablas descargadas de IMDb como en el portal. En esta fase fue necesario convertir la información escrapeada del portal ya que todo era texto. En el caso del presupuesto y la recaudación también fue necesario separar la información de la moneda y la cantidad. La moneda tuvo que ser trasladada al código ISO correspondiente para poder aisgnarle la tasa de cambio correspondiente a la moneda y el año. Finalmente normalicé los valores en dólares para todas las películas. Finalmente, teniendo la información de presupuesto y recaudación, he generado dos nuevos datos que son los beneficios y el retorno de la inversión o ROI.
4. Exploración
En esta etapa hice un análisis univariante, bivariante y multivariante de los datos de valoraciones y recaudación.
Herramientas utilizadas
Web scrapping | Data mining | Visualización |
---|---|---|
- Visual Studio Code | - Jupyter Lab | - Streamlit |
- Python | - Python | - Python |
- Pandas | - Regex | - Regex |
- Selenium | - Pandas | - Pandas |
- Joblib / Parallel | - Numpy | - Numpy |
- Logging | - Matplotlib | |
- Pickle | - Plotly | |
- Google Slides |
Fuentes
IMDd Datasets: https://www.imdb.com/interfaces/
IMDb. Documentación para los datasets: https://www.imdb.com/interfaces/
OECD. Tasas de cambio principales monedas por año: https://data.oecd.org/conversion/exchange-rates.htm
Exchange Rates.Tasas de cambio otras monedas por año: https://www.exchangerates.org.uk/
Google Developers. Listado de coordenadas de países: https://developers.google.com/public-data/docs/canonical/countries_csv
Posible map for countries after clean and merge dataframes of years: https://towardsdatascience.com/using-python-to-create-a-world-map-from-a-list-of-country-names-cd7480d03b10