Saltar al contenido principal
Esta referencia documenta las clases principales de la API de DataStore.

DataStore

La clase principal, similar a un DataFrame, para manipular datos.
from chdb.datastore import DataStore

Constructor

DataStore(data=None, columns=None, index=None, dtype=None, copy=None)
Parámetros:
ParámetroTipoDescripción
datadict/list/DataFrame/DataStoreDatos de entrada
columnslistNombres de columnas
indexIndexÍndice de fila
dtypedictTipos de datos de columna
copyboolCopiar datos
Ejemplos:
# Desde un diccionario
ds = DataStore({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})

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

# DataStore vacío
ds = DataStore()

Propiedades

PropiedadTipoDescripción
columnsIndexNombres de columnas
dtypesSeriesTipos de datos de las columnas
shapetuple(filas, columnas)
sizeintTotal de elementos
ndimintNúmero de dimensiones (2)
emptyboolSi el DataFrame está vacío
valuesndarrayDatos subyacentes como array de NumPy
indexIndexÍndice de filas
TDataStoreTransposición
axeslistLista de ejes

Métodos de fábrica

MétodoDescripción
uri(uri)Factoría universal a partir de un URI
from_file(path, ...)Crear a partir de un archivo
from_df(df)Crear a partir de un DataFrame de pandas
from_s3(url, ...)Crear a partir de S3
from_gcs(url, ...)Crear a partir de Google Cloud Storage
from_azure(url, ...)Crear a partir de Azure Blob
from_mysql(...)Crear a partir de MySQL
from_postgresql(...)Crear a partir de PostgreSQL
from_clickhouse(...)Crear a partir de ClickHouse
from_mongodb(...)Crear a partir de MongoDB
from_sqlite(...)Crear a partir de SQLite
from_iceberg(path)Crear a partir de una tabla Iceberg
from_delta(path)Crear a partir de Delta Lake
from_numbers(n)Crear con números secuenciales
from_random(rows, cols)Crear con datos aleatorios
run_sql(query)Crear a partir de una consulta SQL
Consulta Métodos de fábrica para más detalles.

Métodos de consulta

MétodoDevuelveDescripción
select(*cols)DataStoreSeleccionar columnas
filter(condition)DataStoreFiltrar filas
where(condition)DataStoreAlias de filter
sort(*cols, ascending=True)DataStoreOrdenar filas
orderby(*cols)DataStoreAlias de sort
limit(n)DataStoreLimitar filas
offset(n)DataStoreSaltar filas
distinct(subset=None)DataStoreEliminar duplicados
groupby(*cols)LazyGroupByAgrupar filas
having(condition)DataStoreFiltrar grupos
join(right, ...)DataStoreUnir DataStores
union(other, all=False)DataStoreCombinar DataStores
when(cond, val)CaseWhenCASE WHEN
Consulta Construcción de consultas para obtener más información.

Métodos compatibles con Pandas

Consulta Compatibilidad con Pandas para ver la lista completa de 209 métodos. Indexación: head(), tail(), sample(), loc, iloc, at, iat, query(), isin(), where(), mask(), get(), xs(), pop() Agregación: sum(), mean(), std(), var(), min(), max(), median(), count(), nunique(), quantile(), describe(), corr(), cov(), skew(), kurt() Manipulación: drop(), drop_duplicates(), dropna(), fillna(), replace(), rename(), assign(), astype(), copy() Ordenación: sort_values(), sort_index(), nlargest(), nsmallest(), rank() Reestructuración: pivot(), pivot_table(), melt(), stack(), unstack(), transpose(), explode(), squeeze() Combinación: merge(), join(), concat(), append(), combine(), update(), compare() Aplicación/transformación: apply(), applymap(), map(), agg(), transform(), pipe(), groupby() Series temporales: rolling(), expanding(), ewm(), shift(), diff(), pct_change(), resample()

Métodos de E/S

MétodoDescripción
to_csv(path, ...)Exportar a CSV
to_parquet(path, ...)Exportar a Parquet
to_json(path, ...)Exportar a JSON
to_excel(path, ...)Exportar a Excel
to_df()Convertir a un DataFrame de pandas
to_pandas()Alias de to_df
to_arrow()Convertir a una tabla de Arrow
to_dict(orient)Convertir a diccionario
to_records()Convertir a registros
to_numpy()Convertir a un array de NumPy
to_sql()Generar una cadena SQL
to_string()Representación como cadena
to_markdown()Tabla Markdown
to_html()Tabla HTML
Consulte Operaciones de E/S para obtener más detalles.

Métodos de depuración

MétodoDescripción
explain(verbose=False)Muestra el plan de ejecución
clear_cache()Borra los resultados en caché
Consulta Depuración para más información.

Métodos mágicos

MétodoDescripción
__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

Representa una expresión de columna para evaluación perezosa. Se devuelve al acceder a una columna.
# ColumnExpr se devuelve automáticamente
col = ds['name']  # Devuelve ColumnExpr

Propiedades

PropiedadTipoDescripción
namestrNombre de la columna
dtypedtypeTipo de dato

Accesores

AccesorDescripciónMétodos
.strOperaciones con cadenas56 métodos
.dtOperaciones de fecha y hora42+ métodos
.arrOperaciones de Array37 métodos
.jsonAnálisis de JSON13 métodos
.urlAnálisis de URL15 métodos
.ipOperaciones con direcciones IP9 métodos
.geoOperaciones de Geo/distancia14 métodos
Consulta Accesores para ver la documentación completa.

Operaciones aritméticas

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

Operaciones de comparación

ds[ds['age'] > 25]           # Mayor que
ds[ds['age'] >= 25]          # Mayor o igual
ds[ds['age'] < 25]           # Menor que
ds[ds['age'] <= 25]          # Menor o igual
ds[ds['name'] == 'Alice']    # Igual
ds[ds['name'] != 'Bob']      # Distinto

Operaciones lógicas

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

Métodos

MétodoDescripción
as_(alias)Establecer el nombre del alias
cast(dtype)Convertir al tipo
astype(dtype)Alias de cast
isnull()Es NULL
notnull()No es NULL
isna()Alias de isnull
notna()Alias de notnull
isin(values)En una lista de valores
between(low, high)Entre dos valores
fillna(value)Rellenar valores NULL
replace(to_replace, value)Reemplazar valores
clip(lower, upper)Limitar valores
abs()Valor absoluto
round(decimals)Redondear valores
floor()Redondear hacia abajo
ceil()Redondear hacia arriba
apply(func)Aplicar función
map(mapper)Mapear valores

Métodos de agregación

MétodoDescripción
sum()Suma
mean()Media
avg()Alias de mean()
min()Mínimo
max()Máximo
count()Recuento de valores no nulos
nunique()Recuento de valores únicos
std()Desviación estándar
var()Varianza
median()Mediana
quantile(q)Cuantil
first()Primer valor
last()Último valor
any()Al menos un true
all()Todos true

LazyGroupBy

Representa un DataStore agrupado para realizar operaciones de agregación.
# LazyGroupBy se devuelve automáticamente
grouped = ds.groupby('category')  # Devuelve LazyGroupBy

Métodos

MétodoDevuelveDescripción
agg(spec)DataStoreAgregación
aggregate(spec)DataStoreAlias de agg
sum()DataStoreSuma por grupo
mean()DataStoreMedia por grupo
count()DataStoreRecuento por grupo
min()DataStoreMínimo por grupo
max()DataStoreMáximo por grupo
std()DataStoreDesviación estándar por grupo
var()DataStoreVarianza por grupo
median()DataStoreMediana por grupo
nunique()DataStoreRecuento de valores únicos por grupo
first()DataStorePrimer valor por grupo
last()DataStoreÚltimo valor por grupo
nth(n)DataStoreEnésimo valor por grupo
head(n)DataStorePrimeros n por grupo
tail(n)DataStoreÚltimos n por grupo
apply(func)DataStoreAplicación de una función por grupo
transform(func)DataStoreTransformación por grupo
filter(func)DataStoreFiltrado de grupos

Selección de columnas

# Seleccionar columna después de groupby
grouped['amount'].sum()     # Devuelve DataStore
grouped[['a', 'b']].sum()   # Devuelve DataStore

Especificaciones de agregación

# Agregación única
grouped.agg({'amount': 'sum'})

# Múltiples agregaciones por columna
grouped.agg({'amount': ['sum', 'mean', 'count']})

# Agregaciones con nombre
grouped.agg(
    total=('amount', 'sum'),
    average=('amount', 'mean'),
    count=('id', 'count')
)

LazySeries

Representa una serie diferida (de una sola columna).

Propiedades

PropiedadTipoDescripción
namestrNombre de la serie
dtypedtypeTipo de dato

Métodos

Hereda la mayoría de los métodos de ColumnExpr. Métodos principales:
MétodoDescripción
value_counts()Frecuencia de valores
unique()Valores únicos
nunique()Contar valores únicos
mode()Valor más frecuente
to_list()Convertir a lista
to_numpy()Convertir a array
to_frame()Convertir a DataStore

F (Funciones)

Espacio de nombres de las funciones de ClickHouse.
from chdb.datastore import F, Field

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

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

# Ventana
F.row_number().over(order_by='date')
F.lag('price', 1).over(partition_by='product', order_by='date')
Consulte Agregación para obtener más detalles.

Campo

Referencia a una columna por nombre.
from chdb.datastore import Field

# Crear referencia de campo
amount = Field('amount')
price = Field('price')

# Usar en expresiones
F.sum(Field('amount'))
F.avg(Field('price'))

CaseWhen

Constructor para expresiones CASE WHEN.
# Crear una expresión case-when
result = (ds
    .when(ds['score'] >= 90, 'A')
    .when(ds['score'] >= 80, 'B')
    .when(ds['score'] >= 70, 'C')
    .otherwise('F')
)

# Asignar a la columna
ds['grade'] = result

Window

Especificación de ventana para las funciones de ventana.
from chdb.datastore import F

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

# Usar con una agregación
ds['rolling_avg'] = F.avg('price').over(window)
Última modificación el 10 de junio de 2026