Análisis y visualización de datos usando Python: Glossary

Key Points

Antes de comenzar
  • Python es un lenguaje de programación de código libre y plataforma independiente.

  • SciPy es un ecosistema para Python que provee las herramientas necesarias para la computación científica.

  • Jupyter Notebook y la Spyder IDE son excelentes herramientas para escribir código e interactuar con Python. Con su gran comunidad es fácil encontrar ayuda en internet.

Breve introducción a la Programación en Python
  • Python es un lenguaje interpretado que puede ser usado interactivamente (ejecutando un comando a la vez) o en modo scripting (ejecutando una serie de comandos guardados en un archivo).

  • Se puede asignar un valor a una variable en Python. Esas variables pueden ser de varios tipos, tales como cadenas, y números: enteros, de punto flotante y complejos.

  • Las listas y las tuplas son similares en el sentido de que son listas ordenadas de elementos; difieren en que una tupla es inmutable (sus elementos no pueden ser modificados).

  • Los diccionarios son estructuras de datos desordenadas que proporcionan mapeos entre claves y valores.

Comenzando con datos
  • Las bibliotecas en Python son conjuntos de herramientas, funciones y estructuras de datos, agrupadas de forma conveniente para facilitar nuestro trabajo.

  • Pandas es una librería que ofrece funcionalidades avanzadas para manejar datos tabulares, procesarlos y obtener resultados similares a los que ofrecen las hojas de cálculo.

  • El DataFrame es la estructura de datos fundamental de Pandas, representa una tabla de datos panel con indexación integrada. Cada columna contiene los valores de una variable y cada fila un conjunto de valores de cada columna.

  • Un índice es un vector inmutable, ordenado y divisible, que almacena las etiquetas de los ejes de todas las estructuras de Pandas. Se utiliza para agrupar y seleccionar de distintas maneras el contenido de un DataFrame.

  • Pandas ofrece funcionalidades que permiten realizar operaciones matemáticas, calcular estadísticas y generar gráficos a partir del contenido de una Serie o DataFrame.

Indexación, segmentación y creación de subconjuntos a partir de DataFrames en Python
  • En Python, fragmentos de datos pueden ser accedidos usando índices, cortes, encabezados de columnas, y subconjuntos basados en condiciones.

  • Python usa indexación base-0, en la cual el primer elemento de una lista, tupla o cualquier otra estructura de datos tiene un índice de 0.

  • ‘Pandas’ permite usar procedimientos comunes de exploración de datos como indexación de datos, cortes y creación de subconjuntos basados en condiciones.

Tipos de datos y formatos
  • Pandas usa otros nombres para tipos de datos que Python, por ejemplo: object para datos textuales.

  • Una columna en un DataFrame sólo puede tener un tipo de datos.

  • El tipo de datos de la columna de un DataFrame puede ser comprobado usando dtype.

  • Es necesario tomar decisiones conscientes sobre cómo manejar los datos faltantes.

  • Un DataFrame puede ser guardado en un archivo CSV usando la función to_csv.

Combinando DataFrames con Pandas
  • Podemos usar la función concat en pandas para agregar columnas o filas de un DataFrame a otro.

  • Se pueden combinar DataFrames en base a columnas en cada dataset que contienen valores comunes (un ID única común), esta combinación utilizando un campo común se llama “joining” (unión).

  • Es posible realizar distintos tipos de uniones: interna cuyo resultado solamente tiene las filas donde coinciden las columnas clave en ambos DataFrame, externa hacia la izquierda o la derecha, si queremos conservar las filas del DataFrame de origen o destino respectivamente, o una unión externa completa, con filas para todas las combinaciones de las columnas clave.

Flujos de trabajo y automatización
  • Los bucles nos permiten repetir una serie de acciones un número dado de veces o mientras una condición es cierta.

  • Podemos automatizar tareas que se deben repetir un número predefinido de veces utilizando bucles for.

  • Una tarea de automatización típica en programación es generar secuencias de archivos con nombres distinos que siguen un patrón, esto se puede realizar fácilmente manipulando cadenas de caracteres con el nombre de los archivos dentro de bucles de repetición a medida que se van creando.

  • Es conveniente definir funciones para establecer bloques de código reutilizables. Las funciones se pueden diseñar para que acepten argumentos de entradas para generalizar su funcionalidad y devolver distintos tipos de resultados.

  • Las sentencias if permiten elegir cuales bloques de código ejecutar según según se cumplan o no distintas condiciones.

Creando gráficos con plotnine
  • Las variables data, aes y geometry son los elementos principales de un gráfico de plotnine.

  • Con el operador +, se agregan elementos adicionales al gráfico, por ejemplo scale_*, theme_*, xlab, ylab y facet_*.

Entrada de datos y visualización - Matplotlib y Pandas
  • Matplotlib es el motor detrás de los gráficos creados con plotnine y Pandas.

  • La filosofía de los gráficos de matplotlib, basada en objetos, permite la personalización detallada de los gráficos una vez creados.

  • Es posible exportar gráficos a un archivo usando el método savefig.

Acceso a base de datos SQLite usando Python y Pandas
  • Se puede crear una conexión con sqlite3.connect(), y luego establecer un cursor para consultas con .cursor().

  • Es posible ejecutar consultas usando .execute().

  • Puedes usar la función .read_sql_query() de Pandas para extraer datos directamente de un DataFrame.

  • Se pueden escribir los datos de un DataFrame a una nueva tabla en SQLite usando .to_sql().

  • Al final, no olvides cerrar la puerta de la conexión usando el comando .close().

Glossary

Indexación basada en cero
es una forma de asignar índices a elementos, de manera secuencial, dentro de una estructura de datos y empezando desde cero. Es decir, el primer elemento de la secuencia tiene el índice cero.
CSV (archivo)
es un acrónimo que significa archivo de valores separados por comas. Los archivos CSV almacenan datos tabulares, ya sea números, secuencias de caracteres o una combinación de los dos, en texto plano con columnas separadas por una coma y filas por el carácter de salto de línea.
base de datos
es una colección organizada de datos.
DataFrame
es una estructura bidimensional de datos etiquetados con columnas de (potencialmente) diferentes tipos.
estructura de datos
es una manera particular de organizar datos en memoria.
tipo de datos
es un tipo particular de elemento que puede ser asignado a una variable, definido por los valores que puede tomar, el lenguage de programación en uso y las operaciones que se le pueden aplicar.
diccionario o dictionary
es una estructura de datos desordenada de Python que contiene pares clave-valor, donde ambos, la clave y el valor, pueden ser integers, floats, o cadenas de caracteres. Los elementos de un diccionario pueden ser accesados con su llave y pueden ser modificados.
docstring
es una cadena de caracteres de documentación opcional que describe lo que una función de Python hace.
faceting
es el acto de trazar relaciones entre variables definidas en múltiples subconjuntos de los datos y donde los resultados aparecen como paneles diferentes en la misma figura.
float
es un tipo de datos en Python diseñado para guardar números decimales positivos y negativos mediante una representación denominada punto flotante.
función o function
es un grupo de declaraciones relacionadas que realizan una tarea específica.
integer
es un tipo de datos de Python diseñado para almacenar números enteros positivos y negativos.
modo interactivo
es un modo de operación en línea en el que el usuario escribe los comandos directamente en la línea de comandos uno por uno y los ejecuta inmediatamente presionando un botón, generalmente Return.
clave de unión
es una variable o un array representando los nombres de las columnas sobre las cuales pandas.DataFrame.join() fusiona las columndas de dos datasets.
library o biblioteca
es un conjunto de funciones y metodos agrupados para realizar algún tipo de tareas específicas.
list
es una estructura de datos de Python diseñada para contener secuencias de integers, floats, cadenas de caracteres, y cualquier combinación de las anteriores. La secuencia es ordenada e indexada por integers, empezando desde cero. Los elementos de una list pueden ser accedidos por su índice y pueden ser modificados.
loop o bucle
es una secuencia de instrucciones que es continuamente repetida hasta que se cumple una condición.
NaN
es un acrónimo para Not-a-Number (No-un-Número) y representa que falta un valor o que el cálculo no puede generar un resultado con significado.
None
es un objeto que representa la falta de un valor.
scripting mode
es un modo de operación fuera de línea en el que el usuario escribe los comandos que se ejecutarán en un archivo de texto (con extensión .py para Python) que luego se compila o interpreta para ejecutar el programa. Nótese que Python interpreta el script en tiempo de ejecución y compila una versión binaria del programa para acelerar el tiempo de ejecución.
Sequential (estructura de datos)
es un grupo ordenado de objetos almacenados en la memoria al que se puede acceder especificando su índice, es decir, su posición en la estructura.
SQL
o Structured Query Language, es un lenguaje de dominio-específico (-REVISAR-) para administrar datos almacenados en un sistema de administración de bases de datos relacionales (RDBMS por sus siglas en íngles).
SQLite
es un motor de base de datos de SQL, de dominio público e independiente.
string o cadena de caracteres
es un tipo de datos de Python que almacena secuencias de caracteres.
tupla
es una estructura de datos de Python diseñada para contener secuencias de integers, floats, cadenas de caracteres, y cualquier combinación de las anteriores. La secuencia es ordenada e indexada por integers, empezando desde cero. Los elementos de una list pueden ser accedidos por su índice pero no pueden ser modificados.