Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

110
Views
¿Por qué las operaciones de Pandas no están en su lugar?

Las operaciones de Pandas generalmente crean una copia del marco de datos original. Como señalan algunas respuestas en SO , incluso cuando se usa inplace=True , muchas operaciones aún crean una copia para operar.

Ahora, creo que me llamarían loco si les dijera a mis colegas que cada vez que quiero, por ejemplo, aplicar +2 a una lista, copio todo antes de hacerlo. Sin embargo, es lo que hace Pandas. Incluso las operaciones simples como agregar siempre reasignan todo el marco de datos .

Tener que reasignar y copiar todo en cada operación parece una forma muy ineficiente de operar con cualquier dato. También hace imposible operar en marcos de datos particularmente grandes, incluso si caben en su RAM.

Además, esto no parece ser un problema para los desarrolladores o usuarios de Pandas, tanto que hay un problema abierto # 16529 que discute la eliminación del parámetro inplace por completo , que ha recibido respuestas en su mayoría positivas; algunos comenzaron a quedar obsoletos desde 1.0. Parece que me estoy perdiendo algo. Entonces, ¿qué me estoy perdiendo?

¿Cuáles son las ventajas de copiar siempre el marco de datos en las operaciones, en lugar de ejecutarlas en el lugar siempre que sea posible?

Nota: Estoy de acuerdo en que el encadenamiento de métodos es muy bueno, lo uso todo el tiempo. Sin embargo, creo que "porque podemos encadenar métodos" no es la respuesta completa, ya que Pandas a veces copia incluso en métodos inplace=True , que no están destinados a ser encadenados. Entonces, estoy buscando otras respuestas de por qué esto sería un valor predeterminado razonable.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Como se evidencia aquí en la documentación de pandas, "... En general, nos gusta favorecer la inmutabilidad donde sea sensato". El proyecto Pandas está en el campo de preferir objetos inmutables (sin estado) sobre mutables (objetos con estado) para guiar a los programadores en la creación de un código de procesamiento de datos más escalable/paralelizable. Están guiando a los usuarios haciendo que el comportamiento 'inplace=False' sea el predeterminado.

En este intercambio de pila de ingeniería de software, Peter Torok analiza muy bien los pros y los contras entre la programación de objetos mutables e inmutables. https://softwareengineering.stackexchange.com/a/151735

En resumen, algunos ingenieros de software sienten que los objetos que son inmutables (que no cambian) conducen a

  • menos errores en el código, porque los estados de los objetos son fáciles de perder de vista y difíciles de rastrear
  • mayor escalabilidad: es más fácil escribir código de subprocesos múltiples, ya que un subproceso no modificará inadvertidamente el valor contenido por un objeto en otro subproceso
  • código más conciso, ya que el código debe escribirse en una programación funcional y un estilo más matemático

Estaré de acuerdo en que esto tiene sus ineficiencias ya que hacer copias constantes de los mismos objetos para cambios menores no parece lo ideal. Tiene otros beneficios mencionados anteriormente.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!