A Chalk DataFrame is a 2-dimensional data structure similar
to pandas.Dataframe, but with richer types and
underlying optimizations.
https://docs.chalk.ai/docs/dataframe
Describe features at a feature class or feature level.
df = DataFrame()
DataFrame.from_dict({
User.id: [1, 2],
User.email: ["elliot@chalk.ai", "samantha@chalk.ai"],
})https://docs.chalk.ai/docs/dataframe
Filter the rows of a DataFrame by supplying conditions
to the __getitem__() method.
User.txns[
Transaction.amount < 0,
Transaction.merchant in {"uber", "lyft"} or Transaction.memo == "uberpmts",
Transaction.canceled_at is None
]https://docs.chalk.ai/docs/dataframe
Scope down the set of rows available in a DataFrame.
User.txns[
Transaction.amount,
Transaction.memo
]https://docs.chalk.ai/docs/dataframe
Compose projections and filters to create a new DataFrame.
User.transactions[Transaction.amount > 100, Transaction.memo]https://docs.chalk.ai/docs/dataframe#composing-projections-and-filters
Compute aggregates over a DataFrame.
User.transactions[Transaction.amount].sum()
User.transactions[Transaction.amount].mean()
User.transactions[Transaction.amount].count()
User.transactions[Transaction.amount].max()https://docs.chalk.ai/docs/dataframe#aggregations
Join a feature set back to itself.
@features
class PrequelLink:
id: int
prequel_id: int
book: "Book" = has_one(lambda: Book.id == PrequelLink.prequel_id)
@features
class Book:
id: int
title: str
author_id: Author.id
prequel_id: PrequelLink.id | None
prequel: PrequelLink | None = has_one(lambda: Book.id == PrequelLink.prequel_id)
series_id: SeriesLink.id | None
series: SeriesLink = has_one(lambda: SeriesLink.id == Book.series_id)