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().