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.
Causal Inference for The Brave and True: Métodos de inferencia causal con muchos ejemplos de python.
Documentación oficial de Python: Contiene tutoriales y guías para instalar y usar Python.
Stack Overflow en Inglés y español: Sitio web de preguntas y respuestas para programadores profesionales y entusiastas.
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.
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 |
1.Python |
1.Python |
1.Python |
1.Python |
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.
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:
Necesitamos una cuenta de Google.