Skip to main content
Aunque DataStore es muy compatible con pandas, hay diferencias importantes que conviene entender.

Tabla resumen


1. Ejecución diferida vs inmediata

pandas (ejecución inmediata)

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
  • Pushdown de filtros: 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. Activadores 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 realiza un seguimiento automático de las posiciones originales de las filas a nivel interno (mediante rowNumberInAllBlocks()) para garantizar la coherencia del orden con pandas.

Cuando se mantiene el orden

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

Cuándo puede variar el orden

  • Después de las agregaciones de groupby() (usa sort_values() para garantizar un orden consistente)
  • 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. Consulta Performance Mode.

5. Sin el parámetro inplace

pandas

DataStore

inplace=True no es compatible. Asigne siempre el resultado:

¿Por qué no existe inplace?

DataStore usa operaciones inmutables para permitir:
  • La creación de consultas (evaluación diferida)
  • Seguridad en entornos multihilo
  • Depuración más sencilla
  • Código más limpio

6. Compatibilidad con índices

pandas

Compatibilidad completa con índices:

DataStore

Soporte simplificado para índices:

La fuente de DataStore es importante

  • Fuente de DataFrame: Conserva el índice de pandas
  • Fuente de 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

Usa tipos de numpy/pandas:

DataStore

Puede utilizar tipos de ClickHouse:

Conversión explícita de tipos


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 de migración

Al migrar desde pandas:
  • Cambia la instrucción de importación
  • Elimina los parámetros inplace=True
  • Añade una llamada explícita a to_df() cuando se requiera un pandas DataFrame
  • Añade ordenación si el orden de las filas es importante
  • Usa to_pandas() para pruebas comparativas
  • Haz pruebas con tamaños de datos representativos

Referencia rápida

Última modificación el 23 de julio de 2026