atoti_query.query_hierarchy module#
- class atoti_query.QueryHierarchy#
-
- isin(*member_paths)#
Return a condition to check that the hierarchy is on one of the given members.
Considering
hierarchy_1
containinglevel_1
andlevel_2
,hierarchy_1.isin((a,), (b, c))
is equivalent to(level_1 == a) | ((level_1 == b) & (level_2 == c))
.- Parameters
member_paths (Tuple[ConstantValue, ...]) – One or more member paths expressed as tuples on which the hierarchy should be. Each element in a tuple corresponds to a level of the hierarchy, from the shallowest to the deepest.
- Return type
Condition[HierarchyCoordinates, Literal[‘isin’], Constant, None]
Example
>>> df = pd.DataFrame( ... columns=["Country", "City", "Price"], ... data=[ ... ("Germany", "Berlin", 150.0), ... ("Germany", "Hamburg", 120.0), ... ("United Kingdom", "London", 240.0), ... ("United States", "New York", 270.0), ... ("France", "Paris", 200.0), ... ], ... ) >>> table = session.read_pandas( ... df, keys=["Country", "City"], table_name="isin example" ... ) >>> cube = session.create_cube(table) >>> h, l, m = cube.hierarchies, cube.levels, cube.measures >>> h["Geography"] = [l["Country"], l["City"]] >>> m["Price.SUM in Germany and Paris"] = tt.filter( ... m["Price.SUM"], ... h["Geography"].isin(("Germany",), ("France", "Paris")), ... ) >>> cube.query( ... m["Price.SUM"], ... m["Price.SUM in Germany and Paris"], ... levels=[l["Geography", "City"]], ... ) Price.SUM Price.SUM in Germany and Paris Country City France Paris 200.00 200.00 Germany Berlin 150.00 150.00 Hamburg 120.00 120.00 United Kingdom London 240.00 United States New York 270.00
- property levels: Mapping[str, QueryLevel]#
Levels of the hierarchy.