Tratopedia
EN
Ajustes

Tamaño del texto

Tema

Alto contraste

Versión

v1.177.0

La publicación con la que se generó esta página. Es la que almacena en caché el service worker.

Bibliotecas de dataframes · Python · Ingeniería de rendimiento · Evaluación comparativa · Informe comparativoDatos hasta el 23 sep 2026

Las dos grandes bibliotecas de dataframes de Python, tal como están en septiembre de 2026

Polars y pandas: cuál conviene para cada trabajo

pandas es de código abierto desde 2009 y sigue siendo la biblioteca de tablas más descargada de Python. Polars, con su primer commit en junio de 2020 y escrita en Rust sobre el formato de memoria Apache Arrow, se creó para ser más rápida. Ambas cambiaron en 2026. pandas 3.0 activó por defecto un tipo de cadena dedicado y Copy-on-Write. Polars 2.0, ya en su segunda versión candidata, hace del motor de streaming el predeterminado y deja de garantizar el orden de las filas para lograrlo. La diferencia de velocidad es real y grande en trabajo analítico de gran tamaño. Lo que falta es una medición publicada de las dos tal como son hoy.

  • 3.0.6pandas actual, publicada el 17 de septiembre de 2026; la serie 3.0 empezó el 21 de enero
  • 1.44.2Polars actual, publicada el 9 de septiembre de 2026; la 2.0 va por su segunda versión candidata
  • 94×ventaja de Polars sobre pandas 2.2.3 con unos 10 GB, en la prueba de la propia Polars de junio de 2025
  • 10×ventaja de pandas en descargas de PyPI el último mes: 525.5 millones frente a 51.6 millones

Clasificado según la solidez de cada elemento Ordenado por solidez. Lo medido, lo que una empresa dice de sí misma y lo que solo se promete nunca comparten fila.

SolidezQué constaDónde
ConfirmadoVersiones actuales: pandas 3.0.6 (17 de septiembre de 2026) y Polars 1.44.2 (9 de septiembre de 2026). Polars 2.0.0rc1 salió el 2 de septiembre y la rc2 el 20 de septiembre. pandas requiere Python 3.11 o posterior; Polars, 3.10 o posteriorEl índice de paquetes de Python (PyPI)
Confirmadopandas 3.0 activó un tipo de cadena dedicado, respaldado por PyArrow cuando está instalado; hizo de Copy-on-Write el comportamiento por defecto, de modo que la asignación encadenada deja de funcionar y SettingWithCopyWarning desaparece; añadió una primera forma de expresiones pd.col(); y ahora interpreta por defecto las fechas en texto con resolución de microsegundosNotas de la versión de pandas
ConfirmadoPolars 2.0 ejecuta por defecto todas las consultas diferidas en el motor de streaming. Ese motor no garantiza el orden de las filas en uniones, agrupaciones y unpivot salvo que se pida con maintain_order. También rechaza conversiones de tipo con pérdida y concatenaciones descuadradas que antes dejaba pasarEl anuncio de Polars 2.0
ConfirmadoPolars no tiene índice de filas, guarda los datos en el formato columnar Apache Arrow en lugar de en arrays de NumPy, ejecuta más operaciones en paralelo y puede planificar y optimizar una consulta diferida antes de ejecutarlaLa guía de Polars para usuarios de pandas
MedidoCon un factor de escala 10, unos 10 GB de CSV, el motor de streaming de Polars completó el conjunto de consultas en 3.89 segundos y pandas 2.2.3 en 365.71. Con unos 100 GB no se ejecutó pandas: se quedaba sin memoriaLa prueba PDS-H de la propia Polars, junio de 2025
MedidoCon dataframes grandes, Polars usó alrededor de una octava parte de la energía de pandas en tareas sintéticas y el 63% en tareas TPC-H. Con dataframes pequeños, las tareas TPC-H no mostraron diferencias significativas. Versiones probadas: pandas 2.1.1 y Polars 0.19.7Nahrstedt y otros, EASE 2024, revisado por pares
Afirmación de la empresa, no verificable aquíLa adopción pasó “de 250 000 a más de 23 millones de usuarios mensuales” tras la ronda semilla de 2023, y la biblioteca principal se usa en producción en finanzas, ciencias de la vida y logísticaPolars; TechCrunch, citando a Polars
Afirmación de la empresa, no verificable aquí“En conjunto esperamos que el motor de streaming sea fácilmente 5 veces más rápido”: una previsión del anuncio de la 2.0, no una mediciónEl anuncio de Polars 2.0
Prometido, aún no publicado“Soporte out-of-core de verdad para el motor de streaming”, es decir, trabajo fiable con datos mayores que la memoria, además de un planificador basado en costes y reordenación de uniones. Todo figura como aún en cursoEl anuncio de Polars 2.0
Prometido, aún no publicadoPolars 2.0 definitiva, prevista “en las próximas semanas” tras el 2 de septiembre. No había salido a 23 de septiembreEl anuncio de Polars 2.0; PyPI

De 2008 a septiembre de 2026 Todas las mediciones de velocidad y energía de abajo son anteriores a pandas 3.0. Ninguna compara las versiones actuales de ambas.

  1. 2008Empieza el desarrollo de pandas en AQR Capital Management, a cargo de Wes McKinney
  2. 2009pandas se publica como código abierto antes de fin de año; la versión 0.1 llega a PyPI el 25 de diciembre
  3. 2015pandas pasa a ser un proyecto patrocinado por NumFOCUS
  4. 21 sep 2017McKinney escribe que su regla práctica para pandas es tener de 5 a 10 veces más RAM que el conjunto de datos
  5. 23 jun 2020Ritchie Vink hace el primer commit de Polars
  6. 3 ago 2023Vink y Chiel Peters anuncian una empresa Polars, con una ronda semilla de unos 4 millones de dólares liderada por Bain Capital Ventures; la biblioteca sigue bajo licencia MIT
  7. 18 ene 2024scikit-learn 1.4 permite que sus transformadores devuelvan dataframes de Polars
  8. 18 jun 2024Un equipo de la Vrije Universiteit Amsterdam presenta en EASE 2024 su estudio de energía y rendimiento de pandas 2.1.1 y Polars 0.19.7
  9. 1 jul 2024Polars 1.0.0
  10. 17 sep 2024El motor GPU de Polars, hecho con NVIDIA sobre RAPIDS cuDF, se abre en beta
  11. 1 jun 2025Polars publica resultados PDS-H de Polars 1.30.0 frente a pandas 2.2.3, DuckDB, Dask y PySpark
  12. 29 sep 2025Polars cierra una serie A de 18 millones de euros liderada por Accel, unos 21 millones de dólares, con la vuelta de Bain Capital
  13. 21 ene 2026pandas 3.0.0: tipo de cadena y Copy-on-Write activados por defecto, primeras expresiones pd.col(), Python 3.11 como mínimo
  14. 2 sep 2026Polars 2.0.0rc1, con el motor de streaming como predeterminado para las consultas diferidas
  15. 9 sep 2026Polars 1.44.2, la versión estable actual
  16. 17 sep 2026pandas 3.0.6, la versión estable actual
  17. 20 sep 2026Polars 2.0.0rc2. Aún no hay 2.0 definitiva

Mucho más rápida en trabajo grande, y medida con versiones ya superadas El argumento a favor de Polars tal como lo midieron sus creadores, y luego las dos cosas que lo matizan.

El argumento de Polars es de arquitectura, y su propia prueba le pone cifra. pandas ejecuta cada paso en cuanto se escribe, en un núcleo y sin optimizador. Polars puede tomar la consulta entera, optimizarla antes de ejecutarla y repartirla entre todos los núcleos. En la prueba PDS-H de Polars de junio de 2025, en una máquina de 96 núcleos, eso supuso 365.71 segundos frente a 3.89 con unos 10 GB. Polars dice que dejó fuera a pandas con unos 100 GB porque se quedaba sin memoria. La misma prueba muestra dos cosas que conviene retener. DuckDB, un tercer motor, quedó cerca de Polars a 10 GB y lo superó a 100 GB. Y el antiguo motor en memoria de Polars se frenó mucho a ese tamaño, que es por lo que la 2.0 hace del streaming el predeterminado.

  • 3.89 sPolars en streaming, unos 10 GB, todo el conjunto
  • 365.71 spandas 2.2.3, mismas consultas, misma máquina
Motor, en la prueba PDS-H de Polars de junio de 2025Unos 10 GB, segundosUnos 100 GB, segundos
Polars 1.30.0, streaming3.8923.94
DuckDB 1.3.05.8719.65
Polars 1.30.0, in-memory9.68152.27
Dask 2025.5.146.02548.52
PySpark 4.0.0120.11312.43
pandas 2.2.3365.71no ejecutado: sin memoria

Hay dos matices. El primero es el tamaño. La única comparación revisada por pares, de un equipo de la Vrije Universiteit Amsterdam en EASE 2024, ejecutó tareas TPC-H del mismo tipo con 6 millones de filas y no halló diferencias significativas de energía; los autores señalan una ligera ventaja de pandas. Con 60 millones de filas, y en sus propias tareas sintéticas, Polars iba claramente por delante. El segundo es la antigüedad, y es una lectura de este artículo, no de una fuente. El pandas más reciente de cualquier medición aquí es el 2.2.3, de septiembre de 2024. El estudio usó pandas 2.1.1 y Polars 0.19.7. Las cadenas respaldadas por Arrow y el Copy-on-Write de pandas 3.0 llegaron después de todas ellas, igual que catorce versiones menores de Polars, de la 1.31 a la 1.44. Es muy probable que la diferencia siga siendo grande en trabajo grande. Cuánto, con las versiones actuales, nadie aquí lo ha medido.

  • 6Mfilas: sin diferencia significativa en tareas TPC-H en el estudio revisado por pares
  • 2.2.3el pandas más reciente que se ha medido aquí; la versión actual es la 3.0.6

Mientras tanto, las dos se han acercado, y los costes se han desplazado con ellas. También esto es una lectura de este artículo. pandas 3.0 adoptó cadenas respaldadas por Arrow, semántica de copia en escritura y la primera sintaxis de expresiones, ideas en torno a las que se construyó Polars. Polars 2.0 va en sentido contrario en una garantía que los usuarios de pandas dan por hecha: con el nuevo comportamiento por defecto, una unión o agrupación ya no promete conservar el orden original de las filas. Polars considera el cambio necesario para la velocidad del streaming y pide a quien dependa del orden que lo solicite con maintain_order. El código trasladado de una a otra, o actualizado dentro de Polars, puede cambiar su resultado sin lanzar ningún error.

Memoria, energía, GPU y usar ambas Del creador de la biblioteca, los autores del estudio, NVIDIA y los proyectos que rodean a ambas.

  • Memoria

    Una regla práctica y una hoja de ruta

    Wes McKinney · Polars

    • El creador de pandas escribió en 2017 que su regla práctica era de 5 a 10 veces más RAM que el conjunto de datos: uno de 10 GB pide entre 64 y 128 GB
    • Esa regla es más de ocho años anterior a pandas 3.0. No se encontró en ninguna fuente primaria una cifra comparable para Polars
    • Polars sitúa el “soporte out-of-core de verdad”, el trabajo fiable más allá de la RAM, entre lo que aún está por llegar en la 2.x
  • Energía

    Un estudio controlado

    EASE 2024 · los autores, en el blog de Polars

    • 28 tareas, 10 repeticiones cada una en orden aleatorio, 560 ejecuciones, en un servidor aislado
    • Dataframes grandes: Polars usó alrededor de una octava parte de la energía de pandas en tareas sintéticas y el 63% en tareas TPC-H
    • La energía siguió de cerca al tiempo de ejecución, y los autores lo atribuyen a que Polars usa todos los núcleos
  • GPU

    Hasta 13 veces, en el mejor caso

    Polars · NVIDIA

    • Un motor opcional sobre cuDF de NVIDIA, activado con collect(engine="gpu"); las consultas que no puede ejecutar vuelven a la CPU
    • El “hasta 13 veces” es la mejor de las cuatro mayores aceleraciones que NVIDIA representó, de 22 consultas PDS-H con factor de escala 80, en una H100
    • Publicado como beta abierta en septiembre de 2024; su estado actual no se ha establecido aquí
  • Juntas

    Menos excluyentes

    scikit-learn · Narwhals

    • Desde la 1.4, en enero de 2024, los transformadores de scikit-learn pueden devolver dataframes de Polars con set_output(transform="polars")
    • Narwhals, una capa de compatibilidad sin dependencias, permite que una biblioteca escrita con un subconjunto de la API de Polars acepte pandas, Polars, cuDF, Modin o PyArrow
    • También ofrece soporte solo diferido para Dask, DuckDB, Ibis, PySpark y SQLFrame
  • Adopción

    A un orden de magnitud

    PyPI Stats · Polars

    • Descargas del último mes: pandas 525 518 404 y Polars 51 587 659, una proporción de 10.2
    • Las descargas cuentan instalaciones, incluidas todas las compilaciones automáticas, no personas
    • En agosto de 2023 Polars declaró más de 6 millones de descargas en total; en septiembre de 2025, más de 23 millones de usuarios mensuales

El peso que soporta la prueba principal depende de quién la hizo, así que sus condiciones importan. PDS-H es una derivación de TPC-H de la propia Polars, y Polars advierte que sus resultados no son comparables con los resultados publicados de TPC-H. Sus reglas prohíben podar a mano una tabla antes de una unión y reordenar uniones a mano, y exigen que cada solución ejecute todas las consultas con un solo motor: “Nada de elegir a conveniencia”. La entrada también nombra dónde perdió Polars: frente a DuckDB a 100 GB, y en la consulta 21, una unión por rangos que el motor de streaming aún no implementaba. El artículo de EASE, escrito sin el fabricante, observó que las pruebas anteriores no eran ni sistemáticas ni revisadas por pares. Con datos grandes, sus resultados apuntan en la misma dirección que los de Polars.

Cuál conviene para cada trabajo Dos bibliotecas gratuitas que cada vez colaboran más. La pregunta es la carga de trabajo del lector, no cuál gana.

  • pandas

    Para código existente y trabajo paso a paso

    • Le conviene a: código ya escrito con ella, trabajo que etiqueta filas con un índice o modifica una tabla en su sitio, y conjuntos de datos lo bastante pequeños como para que el estudio controlado no hallara diferencias significativas en sus tareas TPC-H
    • Su punto fuerte: el alcance. Se descarga diez veces más que Polars y es de código abierto desde 2009
    • Su punto fuerte desde la 3.0: copias más predecibles y cadenas más rápidas sin salir de la API conocida
    • A cambio: ejecución inmediata, en gran parte de un solo hilo, y mucha memoria con datos grandes según la regla práctica de su propio creador
  • Polars

    Para grandes flujos analíticos

    • Le conviene a: uniones, agrupaciones y lecturas sobre decenas de millones de filas o gigabytes, flujos escritos como consultas completas y máquinas con muchos núcleos
    • Su punto fuerte: velocidad y energía en trabajo grande. Iba dos órdenes de magnitud por delante de pandas 2.2.3 con unos 10 GB en su propia prueba, y en el estudio independiente consumió mucho menos con datos grandes
    • Otro punto fuerte: el rigor. Da error ante conversiones con pérdida y longitudes descuadradas en lugar de producir en silencio otro resultado
    • A cambio: no hay índice y hay que pensar en expresiones; con la 2.0, el orden de las filas en uniones y agrupaciones hay que pedirlo; el trabajo más allá de la RAM aún se está terminando

Lo que está establecido

Las versiones actuales son pandas 3.0.6 y Polars 1.44.2, con Polars 2.0 en su segunda versión candidata. pandas 3.0 hizo predeterminadas las cadenas respaldadas por Arrow y el Copy-on-Write. Polars 2.0 hace predeterminado el streaming y deja de garantizar el orden de las filas en uniones y agrupaciones. En trabajo analítico grande, versiones anteriores de Polars fueron mucho más rápidas que versiones anteriores de pandas, en la prueba de la propia Polars y en el estudio revisado por pares. En las tareas TPC-H pequeñas del estudio la diferencia no fue significativa. Y las dos pueden usarse juntas, mediante scikit-learn y Narwhals.

Qué tomar con reservas

Cualquier cifra única de aceleración: 94 veces es una ejecución del fabricante, a un tamaño y frente a pandas 2.2.3, y 13 veces es la mejor consulta GPU de 22. La ganancia de 5 veces del streaming y el trabajo fiable más allá de la RAM son previsiones. Las afirmaciones sobre usuarios y producción son de la propia empresa. La cifra de 5 a 10 veces de RAM es una regla práctica de 2017. Y la lectura de que la diferencia sigue siendo grande con las versiones actuales es de este artículo: aún no hay una medición publicada que compare pandas 3.0 con Polars.

Fuentes: El equipo de desarrollo de pandas, “What's new in 3.0.0”, documentación de pandas (21 de enero de 2026); el proyecto pandas, “About pandas”, pandas.pydata.org (consultado el 23 de septiembre de 2026); el índice de paquetes de Python, historiales de versiones de pandas y polars (consultado el 23 de septiembre de 2026); PyPI Stats, estadísticas de descargas de pandas y polars (consultado el 23 de septiembre de 2026); Wes McKinney, “Apache Arrow and the ‘10 Things I Hate About pandas’”, wesmckinney.com (21 de septiembre de 2017); Ritchie Vink y Chiel Peters, “Company announcement”, Polars (3 de agosto de 2023); Ritchie Vink, “Polars raises €18M Series A to build fast, ergonomic data processing at any scale”, Polars (29 de septiembre de 2025); Anna Heim, “The startup behind open source tool Polars raises $21M from Accel”, TechCrunch (29 de septiembre de 2025); Ritchie Vink, “Updated PDS-H benchmark results”, Polars (1 de junio de 2025); Ritchie Vink, “Pre-release of Polars 2.0”, Polars (2 de septiembre de 2026); Ritchie Vink, Robin van den Brink y Lawrence Mitchell, “GPU acceleration with Polars and NVIDIA RAPIDS”, Polars (17 de septiembre de 2024); Jamil Semaan, “Polars GPU Engine Powered by NVIDIA cuDF Now Available in Open Beta”, NVIDIA Technical Blog (17 de septiembre de 2024); Felix Nahrstedt, Mehdi Karmouche, Karolina Bargieł, Pouyeh Banijamali, Apoorva Nalini Pradeep Kumar e Ivano Malavolta, “An Empirical Study on the Energy Usage and Performance of Pandas and Polars Data Analysis Python Libraries”, EASE 2024, ACM (18 de junio de 2024); Ivano Malavolta y Karolina Bargieł, “Benchmarking energy usage and performance of Polars and pandas”, Polars (22 de agosto de 2024); el proyecto Polars, “Coming from Pandas”, guía de usuario de Polars (consultado el 23 de septiembre de 2026); los desarrolladores de scikit-learn, “Release Highlights for scikit-learn 1.4”, scikit-learn.org (enero de 2024); los desarrolladores de Narwhals, “Narwhals”, documentación de Narwhals (consultado el 23 de septiembre de 2026).

Versiones

Este documento se reescribe cuando lo que dice tiene que cambiar. Cada versión sigue publicada en su propia dirección.

  1. v0001 actual

La versión actual también está en latest/.