Passer au contenu principal
Cette page de référence présente les classes principales de l’API DataStore.

DataStore

La principale classe de type DataFrame pour manipuler les données.
from chdb.datastore import DataStore

Constructeur

DataStore(data=None, columns=None, index=None, dtype=None, copy=None)
Paramètres :
ParamètreTypeDescription
datadict/list/DataFrame/DataStoreDonnées d’entrée
columnslistNoms des colonnes
indexIndexIndex des lignes
dtypedictTypes de données des colonnes
copyboolCopie des données
Exemples :
# From dictionary
ds = DataStore({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})

# From pandas DataFrame
import pandas as pd
ds = DataStore(pd.DataFrame({'a': [1, 2, 3]}))

# Empty DataStore
ds = DataStore()

Propriétés

PropriétéTypeDescription
columnsIndexNoms des colonnes
dtypesSeriesTypes de données des colonnes
shapetuple(lignes, colonnes)
sizeintNombre total d’éléments
ndimintNombre de dimensions (2)
emptyboolDataFrame vide ?
valuesndarrayDonnées sous-jacentes sous forme de tableau NumPy
indexIndexIndex des lignes
TDataStoreTransposé
axeslistListe des axes

Méthodes de fabrique

MéthodeDescription
uri(uri)Fabrique universelle à partir d’un URI
from_file(path, ...)Créer à partir d’un fichier
from_df(df)Créer à partir d’un pandas DataFrame
from_s3(url, ...)Créer à partir de S3
from_gcs(url, ...)Créer à partir de Google Cloud Storage
from_azure(url, ...)Créer à partir d’Azure Blob
from_mysql(...)Créer à partir de MySQL
from_postgresql(...)Créer à partir de PostgreSQL
from_clickhouse(...)Créer à partir de ClickHouse
from_mongodb(...)Créer à partir de MongoDB
from_sqlite(...)Créer à partir de SQLite
from_iceberg(path)Créer à partir d’une table Iceberg
from_delta(path)Créer à partir de Delta Lake
from_numbers(n)Créer avec une suite de nombres
from_random(rows, cols)Créer avec des données aléatoires
run_sql(query)Créer à partir d’une requête SQL
Voir Méthodes de fabrique pour plus de détails.

Méthodes de requête

MéthodeRenvoyerDescription
select(*cols)DataStoreSélectionner des colonnes
filter(condition)DataStoreFiltrer les lignes
where(condition)DataStorealias de filter
sort(*cols, ascending=True)DataStoreTrier les lignes
orderby(*cols)DataStorealias de sort
limit(n)DataStoreLimiter le nombre de lignes
offset(n)DataStoreIgnorer certaines lignes
distinct(subset=None)DataStoreSupprimer les doublons
groupby(*cols)LazyGroupByRegrouper les lignes
having(condition)DataStoreFiltrer les groupes
join(right, ...)DataStoreJoindre des DataStore
union(other, all=False)DataStoreCombiner des DataStore
when(cond, val)CaseWhenCASE WHEN
Voir Création de requêtes pour plus de détails.

Méthodes compatibles avec pandas

Consultez Compatibilité avec pandas pour obtenir la liste complète des 209 méthodes. Indexation : head(), tail(), sample(), loc, iloc, at, iat, query(), isin(), where(), mask(), get(), xs(), pop() Agrégation : sum(), mean(), std(), var(), min(), max(), median(), count(), nunique(), quantile(), describe(), corr(), cov(), skew(), kurt() Manipulation : drop(), drop_duplicates(), dropna(), fillna(), replace(), rename(), assign(), astype(), copy() Tri : sort_values(), sort_index(), nlargest(), nsmallest(), rank() Restructuration : pivot(), pivot_table(), melt(), stack(), unstack(), transpose(), explode(), squeeze() Combinaison : merge(), join(), concat(), append(), combine(), update(), compare() Application/Transformation : apply(), applymap(), map(), agg(), transform(), pipe(), groupby() Séries temporelles : rolling(), expanding(), ewm(), shift(), diff(), pct_change(), resample()

Méthodes d’E/S

MéthodeDescription
to_csv(path, ...)Exporter au format CSV
to_parquet(path, ...)Exporter au format Parquet
to_json(path, ...)Exporter au format JSON
to_excel(path, ...)Exporter au format Excel
to_df()Convertir en pandas DataFrame
to_pandas()alias de to_df
to_arrow()Convertir en Arrow Table
to_dict(orient)Convertir en dictionnaire
to_records()Convertir en enregistrements
to_numpy()Convertir en tableau NumPy
to_sql()Générer une chaîne SQL
to_string()Représentation sous forme de chaîne
to_markdown()Tableau Markdown
to_html()Tableau HTML
Voir Opérations d’E/S pour plus de détails.

Méthodes de débogage

MéthodeDescription
explain(verbose=False)Afficher le plan d’exécution
clear_cache()Effacer les résultats en cache
Voir Débogage pour en savoir plus.

Méthodes magiques

MéthodeDescription
__getitem__(key)ds['col'], ds[['a', 'b']], ds[condition]
__setitem__(key, value)ds['col'] = value
__delitem__(key)del ds['col']
__len__()len(ds)
__iter__()for col in ds
__contains__(key)'col' in ds
__repr__()repr(ds)
__str__()str(ds)
__eq__(other)ds == other
__ne__(other)ds != other
__lt__(other)ds < other
__le__(other)ds <= other
__gt__(other)ds > other
__ge__(other)ds >= other
__add__(other)ds + other
__sub__(other)ds - other
__mul__(other)ds * other
__truediv__(other)ds / other
__floordiv__(other)ds // other
__mod__(other)ds % other
__pow__(other)ds ** other
__and__(other)ds & other
__or__(other)`dsother`
__invert__()~ds
__neg__()-ds
__pos__()+ds
__abs__()abs(ds)

ColumnExpr

Représente une expression de colonne pour l’évaluation paresseuse. Elle est renvoyée lors de l’accès à une colonne.
# ColumnExpr is returned automatically
col = ds['name']  # Returns ColumnExpr

Propriétés

PropriétéTypeDescription
namestrNom de la colonne
dtypedtypeType de données

Accessors

AccessorDescriptionMethods
.strOpérations sur les chaînes56 méthodes
.dtOpérations sur les valeurs DateTime42+ méthodes
.arrOpérations sur les Array37 méthodes
.jsonAnalyse du JSON13 méthodes
.urlAnalyse des URL15 méthodes
.ipOpérations sur les adresses IP9 méthodes
.geoOpérations Geo et de distance14 méthodes
Voir Accessors pour la documentation complète.

Opérations arithmétiques

ds['total'] = ds['price'] * ds['quantity']
ds['profit'] = ds['revenue'] - ds['cost']
ds['ratio'] = ds['a'] / ds['b']
ds['squared'] = ds['value'] ** 2
ds['remainder'] = ds['value'] % 10

Opérations de comparaison

ds[ds['age'] > 25]           # Greater than
ds[ds['age'] >= 25]          # Greater or equal
ds[ds['age'] < 25]           # Less than
ds[ds['age'] <= 25]          # Less or equal
ds[ds['name'] == 'Alice']    # Equal
ds[ds['name'] != 'Bob']      # Not equal

Opérations logiques

ds[(ds['age'] > 25) & (ds['city'] == 'NYC')]    # AND
ds[(ds['age'] > 25) | (ds['city'] == 'NYC')]    # OR
ds[~(ds['status'] == 'inactive')]               # NOT

Méthodes

MéthodeDescription
as_(alias)Définir un alias
cast(dtype)Convertir vers un type
astype(dtype)Alias de cast
isnull()Est NULL
notnull()N’est pas NULL
isna()Alias de isnull
notna()Alias de notnull
isin(values)Appartient à une liste de valeurs
between(low, high)Entre deux valeurs
fillna(value)Remplir les valeurs NULL
replace(to_replace, value)Remplacer des valeurs
clip(lower, upper)Limiter les valeurs
abs()Valeur absolue
round(decimals)Arrondir les valeurs
floor()Arrondi à l’entier inférieur
ceil()Arrondi à l’entier supérieur
apply(func)Appliquer une fonction
map(mapper)Mapper les valeurs

Méthodes d’agrégation

MéthodeDescription
sum()Somme
mean()Moyenne
avg()Alias de mean()
min()Minimum
max()Maximum
count()Nombre de valeurs non nulles
nunique()Nombre de valeurs uniques
std()Écart type
var()Variance
median()Médiane
quantile(q)Quantile
first()Première valeur
last()Dernière valeur
any()Au moins une valeur vraie
all()Toutes les valeurs vraies

LazyGroupBy

Représente un DataStore regroupé pour les opérations d’agrégation.
# LazyGroupBy is returned automatically
grouped = ds.groupby('category')  # Returns LazyGroupBy

Méthodes

MéthodeRenvoieDescription
agg(spec)DataStoreAgrégation
aggregate(spec)DataStorealias de agg
sum()DataStoreSomme par groupe
mean()DataStoreMoyenne par groupe
count()DataStoreNombre par groupe
min()DataStoreMinimum par groupe
max()DataStoreMaximum par groupe
std()DataStoreÉcart-type par groupe
var()DataStoreVariance par groupe
median()DataStoreMédiane par groupe
nunique()DataStoreNombre de valeurs uniques par groupe
first()DataStorePremière valeur par groupe
last()DataStoreDernière valeur par groupe
nth(n)DataStoreNième valeur par groupe
head(n)DataStoren premières par groupe
tail(n)DataStoren dernières par groupe
apply(func)DataStoreApplication de la fonction par groupe
transform(func)DataStoreTransformation par groupe
filter(func)DataStoreFiltrage des groupes

Sélection de colonnes

# Select column after groupby
grouped['amount'].sum()     # Returns DataStore
grouped[['a', 'b']].sum()   # Returns DataStore

Spécifications d’agrégation

# Single aggregation
grouped.agg({'amount': 'sum'})

# Multiple aggregations per column
grouped.agg({'amount': ['sum', 'mean', 'count']})

# Named aggregations
grouped.agg(
    total=('amount', 'sum'),
    average=('amount', 'mean'),
    count=('id', 'count')
)

LazySeries

Représente une Series à évaluation différée (à une seule colonne).

Propriétés

PropriétéTypeDescription
namestrNom de la série
dtypedtypeType de données

Méthodes

Hérite de la plupart des méthodes de ColumnExpr. Principales méthodes :
MéthodeDescription
value_counts()Fréquences des valeurs
unique()Valeurs uniques
nunique()Nombre de valeurs uniques
mode()Valeur la plus fréquente
to_list()Convertir en liste
to_numpy()Convertir en tableau
to_frame()Convertir en DataStore

F (Fonctions)

Espace de noms des fonctions ClickHouse.
from chdb.datastore import F, Field

# Aggregations
F.sum(Field('amount'))
F.avg(Field('price'))
F.count(Field('id'))
F.quantile(Field('value'), 0.95)

# Conditional
F.sum_if(Field('amount'), Field('status') == 'completed')
F.count_if(Field('active'))

# Window
F.row_number().over(order_by='date')
F.lag('price', 1).over(partition_by='product', order_by='date')
Voir Agrégation pour plus de détails.

Champ

Référence à une colonne par son nom.
from chdb.datastore import Field

# Create field reference
amount = Field('amount')
price = Field('price')

# Use in expressions
F.sum(Field('amount'))
F.avg(Field('price'))

CaseWhen

Générateur d’expressions CASE WHEN.
# Create case-when expression
result = (ds
    .when(ds['score'] >= 90, 'A')
    .when(ds['score'] >= 80, 'B')
    .when(ds['score'] >= 70, 'C')
    .otherwise('F')
)

# Assign to column
ds['grade'] = result

Window

Spécification de fenêtre pour les fonctions de fenêtre.
from chdb.datastore import F

# Create window
window = F.window(
    partition_by='category',
    order_by='date',
    rows_between=(-7, 0)
)

# Use with aggregation
ds['rolling_avg'] = F.avg('price').over(window)
Dernière modification le 29 juin 2026