Pular para o conteúdo principal
Esta referência documenta as principais classes da API do DataStore.

DataStore

A principal classe semelhante a um DataFrame para manipulação de dados.
from chdb.datastore import DataStore

Construtor

DataStore(data=None, columns=None, index=None, dtype=None, copy=None)
Parâmetros:
ParâmetroTipoDescrição
datadict/list/DataFrame/DataStoreDados de entrada
columnslistNomes das colunas
indexIndexÍndice da linha
dtypedictTipos de dados das colunas
copyboolCopiar os dados
Exemplos:
# A partir de um dicionário
ds = DataStore({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})

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

# DataStore vazio
ds = DataStore()

Propriedades

PropriedadeTipoDescrição
columnsIndexNomes das colunas
dtypesSeriesTipos de dados das colunas
shapetuple(linhas, colunas)
sizeintTotal de elementos
ndimintNúmero de dimensões (2)
emptyboolSe o DataFrame está vazio
valuesndarrayDados subjacentes em um array NumPy
indexIndexÍndice das linhas
TDataStoreTransposição
axeslistLista de eixos

Métodos de fábrica

MétodoDescrição
uri(uri)Fábrica universal baseada em URI
from_file(path, ...)Criar a partir de um arquivo
from_df(df)Criar a partir de um DataFrame do pandas
from_s3(url, ...)Criar a partir do S3
from_gcs(url, ...)Criar a partir do Google Cloud Storage
from_azure(url, ...)Criar a partir do Azure Blob
from_mysql(...)Criar a partir do MySQL
from_postgresql(...)Criar a partir do PostgreSQL
from_clickhouse(...)Criar a partir do ClickHouse
from_mongodb(...)Criar a partir do MongoDB
from_sqlite(...)Criar a partir do SQLite
from_iceberg(path)Criar a partir de uma tabela Iceberg
from_delta(path)Criar a partir do Delta Lake
from_numbers(n)Criar com números sequenciais
from_random(rows, cols)Criar com dados aleatórios
run_sql(query)Criar a partir de uma consulta SQL
Consulte Métodos de fábrica para detalhes.

Métodos de consulta

MétodoRetornaDescrição
select(*cols)DataStoreSeleciona colunas
filter(condition)DataStoreFiltra linhas
where(condition)DataStoreAlias de filter
sort(*cols, ascending=True)DataStoreOrdena linhas
orderby(*cols)DataStoreAlias de sort
limit(n)DataStoreLimita linhas
offset(n)DataStoreIgnora linhas
distinct(subset=None)DataStoreRemove duplicatas
groupby(*cols)LazyGroupByAgrupa linhas
having(condition)DataStoreFiltra grupos
join(right, ...)DataStoreFaz join entre DataStores
union(other, all=False)DataStoreCombina DataStores
when(cond, val)CaseWhenCASE WHEN
Consulte Construção de consultas para mais detalhes.

Métodos compatíveis com o pandas

Consulte Compatibilidade com o pandas para ver a lista completa de 209 métodos. Indexação: head(), tail(), sample(), loc, iloc, at, iat, query(), isin(), where(), mask(), get(), xs(), pop() Agregação: sum(), mean(), std(), var(), min(), max(), median(), count(), nunique(), quantile(), describe(), corr(), cov(), skew(), kurt() Manipulação: drop(), drop_duplicates(), dropna(), fillna(), replace(), rename(), assign(), astype(), copy() Ordenação: sort_values(), sort_index(), nlargest(), nsmallest(), rank() Reformatação: pivot(), pivot_table(), melt(), stack(), unstack(), transpose(), explode(), squeeze() Combinação: merge(), join(), concat(), append(), combine(), update(), compare() Aplicação/Transformação: apply(), applymap(), map(), agg(), transform(), pipe(), groupby() Séries temporais: rolling(), expanding(), ewm(), shift(), diff(), pct_change(), resample()

Métodos de E/S

MétodoDescrição
to_csv(path, ...)Exportar para CSV
to_parquet(path, ...)Exportar para Parquet
to_json(path, ...)Exportar para JSON
to_excel(path, ...)Exportar para Excel
to_df()Converter para DataFrame do pandas
to_pandas()Alias de to_df
to_arrow()Converter para tabela Arrow
to_dict(orient)Converter para dicionário
to_records()Converter para registros
to_numpy()Converter para array NumPy
to_sql()Gerar string SQL
to_string()Representação em string
to_markdown()Tabela Markdown
to_html()Tabela HTML
Consulte Operações de E/S para mais detalhes.

Métodos de depuração

MétodoDescrição
explain(verbose=False)Exibir plano de execução
clear_cache()Limpar resultados em cache
Consulte Depuração para mais detalhes.

Métodos Mágicos

MétodoDescrição
__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 uma expressão de coluna para avaliação preguiçosa. É retornada ao acessar uma coluna.
# ColumnExpr é retornado automaticamente
col = ds['name']  # Retorna ColumnExpr

Propriedades

PropriedadeTipoDescrição
namestrNome da coluna
dtypedtypeTipo de dados

Acessores

AcessorDescriçãoMétodos
.strOperações com strings56 métodos
.dtOperações de data e hora42+ métodos
.arrOperações com arrays37 métodos
.jsonProcessamento de JSON13 métodos
.urlProcessamento de URL15 métodos
.ipOperações com endereços IP9 métodos
.geoOperações geoespaciais/de distância14 métodos
Consulte Acessores para ver a documentação completa.

Operações 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

Operações de comparação

ds[ds['age'] > 25]           # Maior que
ds[ds['age'] >= 25]          # Maior ou igual
ds[ds['age'] < 25]           # Menor que
ds[ds['age'] <= 25]          # Menor ou igual
ds[ds['name'] == 'Alice']    # Igual
ds[ds['name'] != 'Bob']      # Diferente

Operações 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étodoDescrição
as_(alias)Definir nome do alias
cast(dtype)Converter para o tipo
astype(dtype)Alias para cast
isnull()É NULL
notnull()Não é NULL
isna()Alias para isnull
notna()Alias para notnull
isin(values)Em uma lista de valores
between(low, high)Entre dois valores
fillna(value)Preencher valores NULL
replace(to_replace, value)Substituir valores
clip(lower, upper)Limitar valores
abs()Valor absoluto
round(decimals)Arredondar valores
floor()Arredondar para baixo
ceil()Arredondar para cima
apply(func)Aplicar função
map(mapper)Mapear valores

Métodos de agregação

MétodoDescrição
sum()Soma
mean()Média
avg()Alias de mean
min()Mínimo
max()Máximo
count()Contagem de valores não nulos
nunique()Contagem de valores únicos
std()Desvio padrão
var()Variância
median()Mediana
quantile(q)Quantil
first()Primeiro valor
last()Último valor
any()Pelo menos um true
all()Todos true

LazyGroupBy

Representa um DataStore agrupado usado em operações de agregação.
# LazyGroupBy é retornado automaticamente
grouped = ds.groupby('category')  # Retorna LazyGroupBy

Métodos

MétodoRetornaDescrição
agg(spec)DataStoreAgrega
aggregate(spec)DataStorealias de agg
sum()DataStoreSoma por grupo
mean()DataStoreMédia por grupo
count()DataStoreContagem por grupo
min()DataStoreMínimo por grupo
max()DataStoreMáximo por grupo
std()DataStoreDesvio padrão por grupo
var()DataStoreVariância por grupo
median()DataStoreMediana por grupo
nunique()DataStoreContagem de valores únicos por grupo
first()DataStorePrimeiro valor por grupo
last()DataStoreÚltimo valor por grupo
nth(n)DataStoreEnésimo valor por grupo
head(n)DataStorePrimeiros n por grupo
tail(n)DataStoreÚltimos n por grupo
apply(func)DataStoreAplica a função por grupo
transform(func)DataStoreTransforma por grupo
filter(func)DataStoreFiltra grupos

Seleção de colunas

# Selecionar coluna após groupby
grouped['amount'].sum()     # Retorna DataStore
grouped[['a', 'b']].sum()   # Retorna DataStore

Especificações de agregação

# Agregação única
grouped.agg({'amount': 'sum'})

# Múltiplas agregações por coluna
grouped.agg({'amount': ['sum', 'mean', 'count']})

# Agregações nomeadas
grouped.agg(
    total=('amount', 'sum'),
    average=('amount', 'mean'),
    count=('id', 'count')
)

LazySeries

Representa uma Series com avaliação preguiçosa (coluna única).

Propriedades

PropriedadeTipoDescrição
namestrNome da Series
dtypedtypeTipo de dado

Métodos

Herda a maioria dos métodos de ColumnExpr. Principais métodos:
MétodoDescrição
value_counts()Frequência de valores
unique()Valores únicos
nunique()Contagem de valores únicos
mode()Moda
to_list()Converte para lista
to_numpy()Converte para array
to_frame()Converte para DataStore

F (Funções)

Espaço de nomes das funções do ClickHouse.
from chdb.datastore import F, Field

# Agregações
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'))

# Janela
F.row_number().over(order_by='date')
F.lag('price', 1).over(partition_by='product', order_by='date')
Consulte Agregação para obter detalhes.

Campo

Referência a uma coluna pelo nome.
from chdb.datastore import Field

# Criar referência de campo
amount = Field('amount')
price = Field('price')

# Usar em expressões
F.sum(Field('amount'))
F.avg(Field('price'))

CaseWhen

Classe para criar expressões CASE WHEN.
# Criar expressão case-when
result = (ds
    .when(ds['score'] >= 90, 'A')
    .when(ds['score'] >= 80, 'B')
    .when(ds['score'] >= 70, 'C')
    .otherwise('F')
)

# Atribuir à coluna
ds['grade'] = result

Janela

Especificação da janela para funções de janela.
from chdb.datastore import F

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

# Usar com agregação
ds['rolling_avg'] = F.avg('price').over(window)
Última modificação em 10 de junho de 2026