Tableau récapitulatif
1. Exécution différée vs immédiate
pandas (immédiat)
DataStore (différé)
Pourquoi c’est important
- Optimisation des requêtes : plusieurs opérations sont compilées en une seule requête SQL
- Sélection des colonnes utiles : seules les colonnes nécessaires sont lues
- Application des filtres à la source : les filtres sont appliqués à la source
- Utilisation efficace de la mémoire : ne chargez pas les données dont vous n’avez pas besoin
2. Types de retour
pandas
DataStore
Conversion vers les types pandas
3. Déclencheurs d’exécution
Opérations qui restent différées
4. Ordre des lignes
pandas
DataStore
rowNumberInAllBlocks()) afin de garantir un ordre cohérent avec pandas.
Lorsque l’ordre est préservé
- Sources basées sur des fichiers (CSV, Parquet, JSON, etc.)
- Sources de type pandas DataFrame
- Opérations de filtrage
- Sélection de colonnes
- Après utilisation explicite de
sort()ousort_values() - Opérations qui définissent l’ordre (
nlargest(),nsmallest(),head(),tail())
Quand l’ordre peut différer
- Après les agrégations
groupby()(utilisezsort_values()pour garantir un ordre cohérent) - Après
merge()/join()avec certains types de JOIN - En mode performance (
config.use_performance_mode()) : l’ordre des lignes n’est pas garanti, quelle que soit l’opération. Voir Mode Performance.
5. Pas de paramètre inplace
pandas
DataStore
inplace=True n’est pas pris en charge. Affectez toujours le résultat :
Pourquoi pas d’inplace ?
- La construction de requêtes (évaluation différée)
- Une meilleure sûreté en multithreading
- Un débogage simplifié
- Un code plus propre
6. Prise en charge des index
pandas
DataStore
Le type de source du DataStore est important
- Source DataFrame : conserve l’index pandas
- Source File : utilise un index entier simple
7. Comportement des comparaisons
Comparaison avec pandas
Utiliser equals()
8. Inférence de types
pandas
DataStore
Conversion explicite de type
9. Modèle mémoire
pandas
DataStore
10. Messages d’erreur
Différentes sources d’erreurs
- erreurs pandas : issues de la bibliothèque pandas
- erreurs DataStore : issues de chDB ou de ClickHouse
Conseils de débogage
Checklist de migration
- Modifier l’instruction d’import
- Supprimer les paramètres
inplace=True - Ajouter explicitement
to_df()lorsqu’un pandas DataFrame est requis - Ajouter un tri si l’ordre des lignes est important
- Utiliser
to_pandas()pour les tests de comparaison - Tester avec des volumes de données représentatifs