9.3 selenium

Selenium es un proyecto que permite automatizar navegadores. Está principalmente enfocado al testeo de aplicaciones web pero también permite desarrollar potentes flujos de trabajo como es el caso de las técnicas de scraping. Existen múltiples «bindings» pero el que nos ocupa en este caso es el de Python: Documentación Recomendamos la documentación oficial de Selenium…

9.2.3 Acceder al contenido

Simplificando, podríamos decir que cada elemento de la famosa «sopa» de Beautiful Soup puede ser un bs4.element.Tag o un «string». Para el caso de los «tags» existe la posibilidad de acceder a su contenido, al nombre del elemento o a sus atributos. Nombre de etiqueta Podemos conocer el nombre de la etiqueta de un elemento…

9.2 beautifulsoup

El paquete Beautiful Soup es ampliamente utilizado en técnicas de «scraping» permitiendo  «parsear»2 principalmente código HTML. Para empezar a trabajar con Beautiful Soup es necesario construir un objeto de tipo BeautifulSoup que reciba el contenido a «parsear»: A partir de aquí se abre un abanico de posibilidades que iremos desgranando en los próximos epígrafes. Una…

CAPÍTULO 9 Scraping

Si bien existen multitud de datos estructurados en forma de ficheros, hay otros muchos que están embebidos en páginas web y que están preparados para ser visualizados mediante un navegador. Sin embargo, las técnicas de «scraping» nos permiten extraer este tipo de información web para convertirla en datos estructurados con los que poder trabajar de…

Diagramas de caja

Un diagrama de caja permite visualizar la distribución de los valores de manera rápida y muy visual:Python Figura 22: Anatomía de un diagrama de caja Para mostrar el funcionamiento de los diagramas de caja en Matplotlib vamos a hacer uso de distintas distribuciones aleatorias que crearemos mediante funciones de Numpy: Ahora ya podemos construir el…

Gráficos para series temporales

Vamos a trabajar con un conjunto de datos extraído desde esta página de Kaggle que contiene información histórica de temperaturas del planeta Tierra. El fichero global-temperatures. csv se ha descargado para su tratamiento. En primer lugar cargamos los datos, renombramos las columnas y eliminamos los valores nulos: A continuación montamos un gráfico en el que…

8.4.4 Tipos de gráficos

Mediante matplotlib podemos hacer prácticamente cualquier tipo de gráfico. En esta sección haremos un repaso por algunos de ellos. Gráficos de barras Vamos a partir de un «dataset» que contiene los resultados de los Juegos Olímpicos de Tokio 2020. Hemos descargado el fichero medals.xlsx desde una página de Kaggle[1]. En primer lugar cargaremos este fichero…

8.4.3 Primeros pasos

Vamos a empezar por representar la función f (x) = sin(x). Para ello crearemos una variable x con valores flotantes equidistantes y una variable y aplicando la función senoidal. Nos apoyamos en numpy para ello. A continuación usaremos la función plot() del marco para representar la función creada: Múltiples funciones Partiendo de un mismo marco,…

8.4 matplotlib

matplotlib es el paquete Python más utilizado en el ámbito de la ciencia de datos para representaciones gráficas.   La forma más común de importar esta librería es usar el alias plt de la siguiente manera: Importante: Si bien podemos utilizar matplotlib en el intérprete habitual de Python, suele ser muy frecuente trabajar con esta…

Apilando datos

Las operaciones de apilado trabajan sobre los índices del DataFrame. Para comprobar su aplicabilidad, vamos a añadir la columna «Company» como índice del «dataset» anterior: La función stack() nos permite obtener un DataFrame con índice multinivel que incluye las columnas del DataFrame de origen y los valores agrupados: La función unstack() realiza justo la operación…

Usando funciones estadísticas

Vamos a aplicar las funciones estadísticas que proporciona pandas sobre la columna Revenue de nuestro «dataset», aunque podríamos hacerlo sobre todas aquellas variables numéricas susceptibles: Tabla 3 – proviene de la página anterior Ejercicio Partiendo del conjunto de datos democan, obtenga aquellas islas cuya población está por encima de la media del archipiélago canario. Resultado…

Seleción usando «query»

Pandas provee una alternativa para la selección condicional de registros a través de la función query(). Admite una sintaxis de consulta mediante operadores de comparación. Veamos las mismas consultas de ejemplo que para el apartado anterior: Truco: Si los nombres de columna contienen espacios, se puede hacer referencias a ellas con comillas invertidas. Por ejemplo:…

Acceso a un DataFrame

Es fundamental conocer la estructura de un DataFrame para su adecuado manejo: Para todos los ejemplos subsiguientes continuamos utilizando el conjunto de datos de empresas tecnológicas cargado previamente: Figura 18: Componentes de un DataFrame Acceso a filas Si queremos acceder a las filas de un conjunto de datos mediante la posición (índice numérico) del registro…

8.3.2 DataFrames

Un DataFrame es una estructura tabular compuesta por series. Se trata del tipo de datos fundamental en pandas y sobre el que giran la mayoría de operaciones que podemos realizar. Figura 17: Estructura de un DataFrame a partir de Series Creación de un DataFrame Existen múltiples formas de crear un DataFrame en pandas. Veamos algunas…