DataFrames: la teoría de categorías revela su estructura

Fuentes: What Category Theory Teaches Us About DataFrames

El artículo explora cómo la teoría de categorías puede proporcionar una comprensión más profunda de la estructura interna de las librerías de DataFrames, como pandas. La complejidad de estas librerías, con sus numerosos métodos (a veces más de 200), puede llevar a una memorización superficial de la API en lugar de una comprensión de los principios subyacentes. El trabajo de Petersohn et al. (Modin) identificó un álgebra de DataFrames de aproximadamente 15 operadores que pueden expresar todas las operaciones de pandas, lo que representa una gran simplificación. Sin embargo, el autor buscó un nivel aún más fundamental, un conjunto mínimo de operaciones primitivas a partir de las cuales se puedan construir las 15 del álgebra de DataFrames.

Petersohn y su equipo definieron formalmente un DataFrame como una tupla (A, R, C, D): un array de datos (A), etiquetas de fila (R), etiquetas de columna (C) y un vector de dominios de columna (D). Esta definición destaca la simetría entre filas y columnas, una característica distintiva de los DataFrames en comparación con las tablas relacionales tradicionales. Identificaron 15 operadores clave, incluyendo operaciones relacionales estándar (SELECTION, PROJECTION, JOIN, GROUPBY) y operaciones específicas de DataFrames (TRANSPOSE, MAP, TOLABELS, FROMLABELS).

El autor luego observó que cinco de los operadores relacionales (PROJECTION, RENAME, GROUPBY, UNION, JOIN) podían agruparse en tres patrones: Restructuring (reorganización del esquema), Merging (colapso de filas basadas en una clave) y Pairing (combinación de filas de dos tablas). Las operaciones que preservan el esquema (SELECTION, SORT, WINDOW) son ortogonales a estos patrones, mientras que las operaciones específicas de DataFrames operan fuera del modelo relacional. Las operaciones DIFFERENCE y DROP DUPLICATES no encajan fácilmente en estos patrones.

La teoría de categorías, específicamente el trabajo de Fong y Spivak, ofrece un marco para comprender por qué estos patrones son fundamentales. La búsqueda continúa para definir una teoría más completa que explique la relación entre todos los operadores y, potencialmente, revele una estructura aún más profunda en la manipulación de DataFrames. En esencia, el artículo argumenta que la teoría de categorías puede proporcionar una base teórica para comprender y diseñar librerías de DataFrames de manera más efectiva, moviéndose más allá de la simple memorización de APIs.