Saltar al contenido principal
Aunque DataStore es muy compatible con pandas, hay diferencias importantes que conviene entender.

Tabla resumen


1. Ejecución diferida frente a ejecución inmediata

pandas (inmediato)

Las operaciones se ejecutan de inmediato:

DataStore (diferido)

Las operaciones se aplazan hasta que se necesitan los resultados:

Por qué es importante

La ejecución diferida permite:
  • Optimización de consultas: Varias operaciones se compilan en una sola consulta SQL
  • Poda de columnas: Solo se leen las columnas necesarias
  • Ejecución de filtros en el origen: Los filtros se aplican en el origen
  • Uso eficiente de la memoria: No se cargan datos innecesarios

2. Tipos de retorno

pandas

DataStore

Conversión a tipos de pandas


3. Desencadenantes de ejecución

DataStore se ejecuta cuando se necesitan valores reales:

Operaciones que permanecen diferidas


4. Orden de filas

pandas

El orden de las filas siempre se mantiene:

DataStore

El orden de las filas se conserva automáticamente en la mayoría de las operaciones:
DataStore rastrea automáticamente las posiciones originales de las filas de forma interna (mediante rowNumberInAllBlocks()) para garantizar la coherencia del orden con pandas.

Cuando se conserva el orden

  • Fuentes de archivos (CSV, Parquet, JSON, etc.)
  • Fuentes de DataFrame de pandas
  • Operaciones de filtro
  • Selección de columnas
  • Después de una llamada explícita a sort() o sort_values()
  • Operaciones que definen el orden (nlargest(), nsmallest(), head(), tail())

Cuándo el orden puede variar

  • Después de las agregaciones de groupby() (utilice sort_values() para garantizar un orden coherente)
  • Después de merge() / join() con ciertos tipos de join
  • En modo de rendimiento (config.use_performance_mode()): el orden de las filas no está garantizado en ninguna operación. Consulte Modo de rendimiento.

5. Sin parámetro inplace

pandas

DataStore

inplace=True no se admite. Asigna siempre el resultado:

¿Por qué no usar inplace?

DataStore usa operaciones inmutables para favorecer:
  • La construcción de consultas (evaluación diferida)
  • La seguridad en entornos multihilo
  • Una depuración más sencilla
  • Un código más limpio

6. Soporte de índices

pandas

Compatibilidad completa con índices:

DataStore

Soporte simplificado para índices:

La fuente de DataStore importa

  • Fuente DataFrame: Conserva el índice de pandas
  • Fuente File: Usa un índice entero simple

7. Comportamiento de las comparaciones

Comparación con pandas

pandas no reconoce los objetos DataStore:

Uso de equals()


8. Inferencia de tipos

pandas

Utiliza tipos de numpy/pandas:

DataStore

Puede utilizar tipos de ClickHouse:

Conversión explícita


9. Modelo de memoria

pandas

Todos los datos se almacenan en memoria:

DataStore

Los datos permanecen en su origen hasta que se necesitan:

10. Mensajes de error

Diferentes fuentes de errores

  • errores de pandas: De la biblioteca pandas
  • errores de DataStore: De chDB o ClickHouse

Consejos de depuración


Lista de comprobación para la migración

Al migrar desde pandas:
  • Cambie la instrucción de importación
  • Elimine los parámetros inplace=True
  • Añada to_df() de forma explícita cuando se requiera un DataFrame de pandas
  • Añada ordenación si el orden de las filas es importante
  • Use to_pandas() para las pruebas de comparación
  • Haga pruebas con tamaños de datos representativos

Referencia rápida

Última modificación el 10 de junio de 2026