atoti.Table.query()#
- Table.query(*columns, filter=None, max_rows=2147483646, timeout=datetime.timedelta(seconds=30))#
Query the table to retrieve some of its rows.
If the table has more than max_rows rows matching filter, the set of returned rows is unspecified and can change from one call to another.
As opposed to
head()
, the returned DataFrame will not be indexed by the table’skeys
since columns may lack some of them.- Parameters:
columns (Column) – The columns to query. If empty, all the columns of the table will be queried.
filter (Condition[ColumnIdentifier, Literal['eq', 'ge', 'gt', 'le', 'lt', 'ne', 'isin'], Constant, ~typing.Literal['and', 'or'] | None] | None) – The filtering condition. Only rows matching this condition will be returned.
max_rows (int) – The maximum number of rows to return.
timeout (timedelta) – The duration the query execution can take before being aborted.
- Return type:
Example
>>> df = pd.DataFrame( ... columns=["Continent", "Country", "Currency", "Price"], ... data=[ ... ("Europe", "France", "EUR", 200.0), ... ("Europe", "Germany", "EUR", 150.0), ... ("Europe", "United Kingdom", "GBP", 120.0), ... ("America", "United states", "USD", 240.0), ... ("America", "Mexico", "MXN", 270.0), ... ], ... ) >>> table = session.read_pandas( ... df, ... keys=["Continent", "Country", "Currency"], ... table_name="Prices", ... ) >>> result = table.query(filter=table["Price"] >= 200) >>> result.set_index(list(table.keys)).sort_index() Price Continent Country Currency America Mexico MXN 270.0 United states USD 240.0 Europe France EUR 200.0