3.1. Programación en Python para el manejo de datos#

Introducción a Python#

En este curso cubriremos conceptos básicos e intermedios de Python enfocado en análisis de datos.

El contenido del curso se encuentra subido a alejo-acosta/pmdb-material.


Primero, algunos recursos importantes para el curso.#

Python for Data Analysis : Data Wrangling with Pandas, NumPy, and IPython by Wes McKinney, 2017.

image

Es muy probable que si tienes un problema con tu código, alguien más ya lo tuvo y fue resuelto por la comunidad. Solo necesita saber donde buscar.


¿Qué es Python y por qué usarlo?#

  • Python es un lenguaje de programación interpretado, dinámico, de alto nivel y multipropósito.

    image

    • Interpretado: se ejecuta “en tiempo real”. No es necesario compilarlo (traducirlo) a lenguaje de máquina.

    • Dinámico no necesitamos especificar el tipo de variable que vamos a asignar, Python infiere acorde a la estructura de los datos.

    • De alto nivel: Sintaxis amigable. Es más parecido a leer inglés que lenguaje de máquina.

    • Multipropósito: Desde desarrollo web hasta la ciencia de datos: machine learning, robótica, estadística, física, etc. Los casos de uso de Python en el mundo real son ilimitados.

  • Por éstas y otras razones históricas y culturales, Python ha desarrollado una gran y activa comunidad científica. En los últimos 10 años, Python ha pasado de ser un “lenguaje para informáticos” a uno de los lenguajes más importantes para el análisis de datos y el desarrollo de software en la academia y la industria.

Note

Python no es perfecto para todo! El secreto es entender las fortalezas y debilidades de cada lenguaje y saber aprovecharlos.

Por ejemplo, mi workflow es:

Extracción y manipulación datos

Análisis Exploratorio

Gráficos

Análisis Estadístico

Modelos

1.Python
2.Stata

1.Python
2.Excel
3.Stata

1.Python
2.Excel

1.Python
2.Stata

1.Python
2.Stata
3.R


El Zen de Python#

En general, la comunidad Python es amigable y muy apasionada. Para muchos, escribir código es un arte. Por esto, se ha creado una filosofía sobre las mejores prácticas sobre como escribir código:

The Zen of Python

  • Beautiful is better than ugly.

  • Explicit is better than implicit.

  • Simple is better than complex.

  • Complex is better than complicated.

  • Flat is better than nested.

  • Sparse is better than dense.

  • Readability counts.

  • Special cases aren’t special enough to break the rules.

  • Although practicality beats purity.

  • Errors should never pass silently.

  • Unless explicitly silenced.

  • In the face of ambiguity, refuse the temptation to guess.

  • There should be one– and preferably only one –obvious way to do it.

  • Although that way may not be obvious at first unless you’re Dutch.

  • Now is better than never.

  • Although never is often better than right now.

  • If the implementation is hard to explain, it’s a bad idea.

  • If the implementation is easy to explain, it may be a good idea.

  • Namespaces are one honking great idea – let’s do more of those!

Reglas” más específicas sobre buenas prácticas las podemos encontrar en PEP8


Instalación, IDE y Jupyter Notebooks#

A diferencia de R o Stata, hay muchas de formas distintas para usar Python.

La instalación puede ser utilizando la documentación y sitio web oficial oficial de Python o utilizando Anaconda, un gestor de librerías.

Para escribir y editar programas igualmente existen muchos de editores de texto: Vscode, PyCharm, Sublime, Vim, Atom, Jupyter, etc.

Encontrar la combinación que mejor se adapte a nuestras necesidades e instalar Python puede ser un proceso agotador.

Sin embargo, entre académicos y científicos de datos, dos herramientas ampliamente utilizadas son jupyter y spyder. Nosotros trabajaremos con el primero, mediante una herramienta en línea:

Google Colaboratory

Necesitamos una cuenta de Google.