Cómo aprender pandas

En esta publicación, describiré una estrategia para "aprender pandas". Para aquellos que no lo saben, pandas es la biblioteca más popular en el ecosistema científico de Python para hacer análisis de datos. Pandas es capaz de muchas tareas, incluyendo:

  • Leer / escribir muchos formatos de datos diferentes
  • Seleccionar subconjuntos de datos
  • Cálculo a través de filas y columnas hacia abajo
  • Encontrar y completar datos faltantes
  • Aplicar operaciones a grupos independientes dentro de los datos.
  • Reformar datos en diferentes formas
  • Combinando múltiples conjuntos de datos juntos
  • Funcionalidad avanzada de series temporales
  • Visualización a través de matplotlib y seaborn

Convertirse en un experto

  • Mi libro Master Data Analysis with Python es el texto más completo del mercado para aprender el análisis de datos usando Python y viene con más de 300 ejercicios y proyectos.
  • Regístrese para la clase de Introducción a Pandas GRATIS
  • Sígueme en Twitter @TedPetrou para mis trucos diarios de ciencia de datos

Aunque pandas es muy capaz, no proporciona funcionalidad para toda la tubería de ciencia de datos. Pandas suele ser la herramienta intermedia utilizada para la exploración y limpieza de datos, dividida entre la captura y el almacenamiento de datos, y el modelado y la predicción de datos.

Canal de ciencia de datos

Para un científico de datos típico, los pandas desempeñarán el papel más importante a medida que los datos atraviesen la tubería. Una medida para cuantificar esto es con la aplicación de tendencias Stack Overflow.

Actualmente, los pandas tienen más actividad en Stack Overflow que cualquier otra biblioteca de ciencia de datos de Python y constituyen un sorprendente 1% de todas las preguntas nuevas enviadas en todo el sitio.

Stack Overflow Overuse

De la tabla anterior, tenemos evidencia de que muchas personas están usando y también confundidos por los pandas. He respondido unas 400 preguntas sobre pandas en Stack Overflow y veo de primera mano lo mal entendida que es la biblioteca. A pesar de toda la grandeza que Stack Overflow ha otorgado a los programadores, tiene un inconveniente significativo. La gratificación instantánea de encontrar una respuesta es un inhibidor masivo para trabajar con la documentación y otros recursos por su cuenta. Creo que sería una buena idea dedicar algunas semanas cada año a no usar Stack Overflow.

Guía paso a paso para aprender pandas

Hace un par de semanas, publiqué una guía simple en el subreddit r / datascience cuando alguien pidió ayuda para practicar pandas. A continuación se detalla la información de esa publicación.

Para comenzar, en realidad no debes tener el objetivo de "aprender pandas". Si bien saber cómo ejecutar las operaciones en la biblioteca será útil, no será tan beneficioso como aprender pandas de la forma en que realmente lo usarías durante un análisis de datos. Puede segmentar su aprendizaje en dos categorías distintas:

  • Aprender la biblioteca de pandas independientemente del análisis de datos.
  • Aprender a usar pandas como lo haría durante un análisis de datos real

La diferencia entre los dos es como aprender a ver algunas ramas pequeñas por la mitad en lugar de salir a un bosque y cortar algunos árboles. Resumamos estos dos enfoques antes de entrar en más detalles.

Aprender la biblioteca Pandas independientemente del análisis de datos: este enfoque implicará principalmente la lectura y, lo que es más importante, la exploración de la documentación oficial de los pandas.

Aprender a usar Pandas como lo haría durante un análisis de datos real: este enfoque implica encontrar o recopilar datos del mundo real y realizar un análisis de datos de extremo a extremo. Uno de los mejores lugares para encontrar datos es con los conjuntos de datos de Kaggle. Este no es el componente de aprendizaje automático de Kaggle, lo que le sugiero encarecidamente que evite hasta que se sienta más cómodo con los pandas.

Enfoque Alterno

Durante su viaje para aprender cómo hacer análisis de datos con pandas, debe alternar entre aprender los fundamentos de la documentación y su aplicación en un conjunto de datos del mundo real. Esto es muy importante, ya que es fácil aprender lo suficiente de los pandas para completar la mayoría de sus tareas, y luego depender demasiado de estos conceptos básicos cuando existen operaciones más avanzadas.

Comience con la documentación

Si nunca ha trabajado con pandas antes, pero tiene una comprensión adecuada de Python básico, le sugiero comenzar con la documentación oficial de pandas. Es extremadamente completo y en su estado actual, 2,195 páginas (cuidado, el enlace es para pdf completo). Incluso con su tamaño masivo, la documentación en realidad no cubre todas las operaciones y ciertamente no cubre todas las diferentes combinaciones de parámetros que puede usar dentro de las funciones / métodos de los pandas.

Aprovechar al máximo la documentación

Para aprovechar al máximo la documentación, no solo la lea. Hay alrededor de 15 secciones de la documentación que sugiero cubrir. Para cada sección, cree un nuevo cuaderno Jupyter. Lea esta publicación de blog de Data Camp si no está familiarizado con los cuadernos Jupyter.

Tu primer cuaderno Jupyter

Comience con la sección Introducción a las estructuras de datos. Abra esta página junto con su cuaderno Jupyter. Mientras lee la documentación, escriba el código (no lo copie) y ejecútelo en el cuaderno. Durante la ejecución del código, asegúrese de explorar las operaciones e intente nuevas formas de usarlas.

Continúe con la sección Indización y selección de datos. Cree un nuevo cuaderno Jupyter y vuelva a escribir, ejecutar y explorar las diferentes operaciones que aprende. Seleccionar datos es uno de los aspectos más confusos para los usuarios principiantes de pandas. Escribí una larga publicación de Stack Overflow en .loc vs .iloc que es posible que desee leer para obtener otra explicación.

Después de estas dos secciones, debe comprender los componentes de un DataFrame y una Serie y saber cómo seleccionar diferentes subconjuntos de datos. Ahora lea 10 minutos para pandas para obtener una visión más amplia de varias otras operaciones útiles. Como con todas las secciones, haga un nuevo cuaderno.

Presione shift + tab + tab para obtener ayuda en un Jupyter Notebook

Constantemente presiono shift + tab + tab cuando uso pandas en un cuaderno Jupyter. Cuando se coloca un cursor dentro del nombre, o entre paréntesis que siguen a cualquier Python válido, la documentación de ese objeto aparece en un pequeño cuadro desplazable. Este cuadro de ayuda es invaluable para mí, ya que es imposible recordar todos los diferentes nombres de parámetros y sus tipos de entrada.

Presionando shift + tab + tab para revelar la documentación para el método de pila

También puede presionar la pestaña directamente después de un punto para tener un menú desplegable de todos los objetos disponibles

Al presionar la pestaña que sigue a un Marco de datos se enumeran los más de 200 objetos disponibles

Si está disfrutando este artículo, ¡considere comprar el Pase de acceso total! que incluye todo mi material actual y futuro por un precio bajo.

Desventaja importante de la documentación

Si bien la documentación es muy exhaustiva, no hace un buen trabajo al enseñar cómo hacer un análisis de datos con datos reales. Todos los datos son artificiales o generados aleatoriamente. Además, el análisis de datos reales implicará múltiples operaciones de pandas (a veces docenas) unidas. Nunca obtendrá exposición a esto de la documentación. La documentación enseña un enfoque mecánico para aprender pandas, donde un método se aprende de forma aislada de los demás.

Tu primer análisis de datos

Después de estas tres secciones de la documentación, estará listo para su primera exposición a datos reales. Como se mencionó anteriormente, recomiendo comenzar con los conjuntos de datos de Kaggle. Puede ordenar por los más votados para devolver los más populares, como el conjunto de datos de películas TMDB 5000. Descargue los datos y cree un nuevo cuaderno Jupyter en ese conjunto de datos. Es poco probable que pueda hacer un procesamiento de datos avanzado en este punto, pero debería poder practicar lo que aprendió en las tres secciones de la documentación.

Mira los granos

Cada conjunto de datos de Kaggle tiene una sección de núcleos (núcleos de conjuntos de datos de películas). No permita que el nombre ‘kernel’ lo confunda, es solo un cuaderno Jupyter creado por un usuario de Kaggle en Python o R. Esta será una de sus mejores oportunidades de aprendizaje. Después de haber realizado un análisis básico por su cuenta, abra uno de los núcleos Python más populares. Lea varios de ellos, tome fragmentos de código que le parezcan interesantes e insértelos en su propio cuaderno.

Si no entiende algo, haga una pregunta en la sección de comentarios. En realidad, puede crear su propio núcleo, pero por ahora, me quedaría trabajando localmente en sus cuadernos.

Volviendo a la documentación

Una vez que haya terminado su primer núcleo, puede volver a la documentación y completar otra sección. Aquí está mi ruta recomendada a través de la documentación:

  • Trabajando con datos faltantes
  • Agrupar por: dividir-aplicar-combinar
  • Reformar y tablas dinámicas
  • Fusionar, unir y concatenar
  • Herramientas IO (Texto, CSV, HDF5, ...)
  • Trabajando con datos de texto
  • Visualización
  • Funcionalidad de serie temporal / fecha
  • Time Deltas
  • Datos categóricos
  • Herramientas computacionales
  • MultiIndex / Indexación avanzada

Este orden es significativamente diferente del orden presentado en el lado izquierdo de la página de inicio de la documentación y cubre los temas que creo que son más importantes primero. Hay varias secciones de la documentación que no se enumeran anteriormente, que puede cubrir por su cuenta en una fecha posterior.

Después de completar estas secciones de la documentación y aproximadamente 10 núcleos de Kaggle, debería estar en camino de sentirse cómodo tanto con la mecánica de los pandas como con el análisis de datos reales.

Análisis exploratorio de datos de aprendizaje

Al leer muchos núcleos populares de Kaggle, aprenderá mucho sobre lo que hace un buen análisis de datos. Para un enfoque más formal y riguroso, recomiendo leer el capítulo 4, Análisis exploratorio de datos del libro en línea de Howard Seltman.

Creando tus propios Kernels

Debería considerar crear sus propios núcleos en Kaggle. Esta es una excelente manera de obligarse a escribir cuadernos Jupyter limpios y claros. Es típico crear cuadernos por su cuenta que son muy desordenados con código escrito fuera de orden que sería imposible que otra persona (como su futuro yo) tenga sentido. Cuando publique un kernel en línea, sugeriría hacerlo como si esperara que su empleador actual o futuro lo leyera. Escriba un resumen ejecutivo o resumen en la parte superior y explique claramente cada bloque de código con descuento. Lo que suelo hacer es hacer una libreta exploratoria desordenada y una libreta completa como producto final. Aquí hay un núcleo de uno de mis estudiantes en el conjunto de datos de análisis de recursos humanos.

No solo aprendas pandas; Domínalo

Hay una gran diferencia entre un usuario de pandas que sabe lo suficiente para sobrevivir y un usuario avanzado que lo domina. Es bastante común que los usuarios habituales de pandas escriban código deficiente, ya que existe una gran cantidad de funcionalidad y, a menudo, múltiples formas de obtener el mismo resultado. Es bastante fácil escribir algunas operaciones de pandas que obtienen su resultado pero de una manera altamente ineficiente.

Si usted es un científico de datos que trabaja con Python, es probable que ya use pandas con frecuencia, por lo que es prioritario dominarlo y crear un gran valor para usted. También hay muchos trucos divertidos disponibles.

Pon a prueba tus conocimientos con Stack Overflow

Realmente no conoce una biblioteca de Python si no puede responder la mayoría de las preguntas que se hacen en Stack Overflow. Esta declaración puede ser un poco demasiado fuerte, pero en general, Stack Overflow proporciona un excelente campo de pruebas para su conocimiento de una biblioteca en particular. Hay más de 50,000 preguntas etiquetadas como pandas, por lo que tiene un banco de pruebas sin fin para desarrollar sus conocimientos sobre pandas.

Si nunca ha respondido una pregunta sobre Desbordamiento de pila, le recomendaría que consulte las preguntas anteriores que ya tienen respuestas e intente contestarlas solo con la documentación. Después de que sienta que puede reunir respuestas de alta calidad, sugeriría hacer intentos de preguntas sin respuesta. Nada mejoró mis habilidades de pandas más que responder preguntas sobre Stack Overflow.

Tus propios proyectos

Los núcleos de Kaggle son geniales, pero eventualmente, debes abordar un proyecto único por tu cuenta. El primer paso es encontrar datos, de los cuales hay muchos recursos como:

  • data.gov
  • data.world
  • Datos abiertos de Nueva York, datos abiertos de Houston, datos abiertos de Denver: la mayoría de las grandes ciudades estadounidenses tienen portales de datos abiertos

Después de encontrar un conjunto de datos que desea explorar, continúe con el mismo proceso de creación de un cuaderno Jupyter y, cuando tenga un buen producto final, publíquelo en GitHub.

Resumen

En resumen, use la documentación para aprender la mecánica de las operaciones de los pandas y use conjuntos de datos reales, comenzando con los núcleos de Kaggle, para aprender cómo usar los pandas para hacer análisis de datos. Finalmente, pruebe sus conocimientos con Stack Overflow.

¡Obtenga el Pase de acceso total!

¡Obtenga todo mi material actual y futuro por un precio bajo con el Pase de acceso total! Los cursos primarios disponibles son los siguientes:

  • Ejercicio Python
  • Análisis de datos maestros con Python
  • Master Machine Learning con Python