import%20marimo%0A%0A__generated_with%20%3D%20%220.14.16%22%0Aapp%20%3D%20marimo.App(%0A%20%20%20%20width%3D%22medium%22%2C%0A%20%20%20%20app_title%3D%22Bucketing%20with%20Other%20Pattern%22%2C%0A%20%20%20%20css_file%3D%22marimo_custom.css%22%2C%0A)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20text_cell(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%23%20Bucketing%20with%20'Other'%0A%0A%20%20%20%20Group%20low-frequency%20values%20into%20an%20%22Other%22%20category%20for%20cleaner%20analysis.%0A%0A%20%20%20%20%23%23%20Overview%0A%0A%20%20%20%20Bucketing%20is%20a%20technique%20to%20simplify%20data%20visualization%20and%20analysis%20by%20grouping%0A%20%20%20%20low-frequency%20or%20less%20important%20categories%20into%20a%20single%20%22Other%22%20bucket.%20This%0A%20%20%20%20helps%20focus%20attention%20on%20the%20most%20significant%20categories%20while%20maintaining%0A%20%20%20%20data%20completeness.%0A%0A%20%20%20%20**Malloy%20reference%3A**%20%5BBucketing%20with%20Other%5D(https%3A%2F%2Fdocs.malloydata.dev%2Fdocumentation%2Fpatterns%2Fother)%0A%0A%20%20%20%20This%20pattern%20is%20essential%20for%3A%0A%20%20%20%20-%20**Top%20N%20analysis**%20-%20Show%20top%205%20states%20%2B%20%22Other%22%0A%20%20%20%20-%20**Clean%20visualizations**%20-%20Avoid%20cluttered%20charts%20with%20too%20many%20categories%0A%20%20%20%20-%20**Focus%20on%20key%20segments**%20-%20Highlight%20important%20groups%20while%20preserving%20totals%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20text_cell()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20ibis%0A%20%20%20%20from%20ibis%20import%20_%0A%20%20%20%20from%20boring_semantic_layer%20import%20to_semantic_table%0A%20%20%20%20import%20textwrap%0A%0A%20%20%20%20BASE_URL%20%3D%20%22https%3A%2F%2Fpub-a45a6a332b4646f2a6f44775695c64df.r2.dev%22%0A%0A%20%20%20%20%23%20Define%20code%20as%20strings%20for%20accordion%0A%20%20%20%20imports_code%20%3D%20textwrap.dedent(%22%22%22%5C%0A%20%20%20%20import%20ibis%0A%20%20%20%20from%20ibis%20import%20_%0A%20%20%20%20from%20boring_semantic_layer%20import%20to_semantic_table%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20data_code%20%3D%20textwrap.dedent(f%22%22%22%5C%0A%20%20%20%20BASE_URL%20%3D%20%22%7BBASE_URL%7D%22%0A%20%20%20%20con%20%3D%20ibis.duckdb.connect(%22%3Amemory%3A%22)%0A%0A%20%20%20%20%23%20Load%20airports%20data%0A%20%20%20%20airports_tbl%20%3D%20con.read_parquet(f%22%7B%7BBASE_URL%7D%7D%2Fairports.parquet%22)%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20semantic_code%20%3D%20textwrap.dedent(%22%22%22%5C%0A%20%20%20%20airports%20%3D%20(%0A%20%20%20%20%20%20%20%20to_semantic_table(airports_tbl%2C%20name%3D%22airports%22)%0A%20%20%20%20%20%20%20%20.with_measures(%0A%20%20%20%20%20%20%20%20%20%20%20%20avg_elevation%3Dlambda%20t%3A%20t.elevation.mean()%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20Execute%20setup%0A%20%20%20%20con%20%3D%20ibis.duckdb.connect(%22%3Amemory%3A%22)%0A%20%20%20%20airports_tbl%20%3D%20con.read_parquet(f%22%7BBASE_URL%7D%2Fairports.parquet%22)%0A%0A%20%20%20%20airports%20%3D%20to_semantic_table(airports_tbl%2C%20name%3D%22airports%22).with_measures(%0A%20%20%20%20%20%20%20%20avg_elevation%3Dlambda%20t%3A%20t.elevation.mean()%2C%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20Display%20accordion%20with%20setup%20code%0A%20%20%20%20_title%20%3D%20mo.md(%22%23%23%20Define%20Semantic%20Model%22)%0A%20%20%20%20_desc%20%3D%20mo.md(%22We%20create%20a%20semantic%20table%20with%20elevation%20measures%3A%22)%0A%20%20%20%20_accordion%20%3D%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%220%EF%B8%8F%E2%83%A3%20Imports%22%3A%20mo.md(f%22%60%60%60python%5Cn%7Bimports_code%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%221%EF%B8%8F%E2%83%A3%20Load%20data%22%3A%20mo.md(f%22%60%60%60python%5Cn%7Bdata_code%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%222%EF%B8%8F%E2%83%A3%20Define%20semantic%20table%22%3A%20mo.md(f%22%60%60%60python%5Cn%7Bsemantic_code%7D%5Cn%60%60%60%22)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%0A%20%20%20%20mo.vstack(%5B_title%2C%20_desc%2C%20_accordion%5D)%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell%0Adef%20text_cell(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%23%23%20Top%20States%20by%20Elevation%20%2B%20Other%0A%0A%20%20%20%20This%20query%20demonstrates%20the%20bucketing%20pattern%3A%0A%20%20%20%201.%20Rank%20states%20by%20average%20elevation%0A%20%20%20%202.%20Mark%20states%20outside%20top%204%20as%20%22OTHER%22%0A%20%20%20%203.%20Aggregate%20with%20nested%20airport%20details%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20q1%20%3D%20%22%22%22%0A%20%20%20%20airports.group_by(%22state%22)%0A%20%20%20%20.aggregate(%0A%20%20%20%20%20%20%20%20%22avg_elevation%22%2C%0A%20%20%20%20%20%20%20%20nest%3D%7B%22data%22%3A%20lambda%20t%3A%20t.group_by(%5B%22code%22%2C%20%22elevation%22%5D)%7D%2C%0A%20%20%20%20)%0A%20%20%20%20.mutate(%0A%20%20%20%20%20%20%20%20rank%3Dibis.row_number().over(%0A%20%20%20%20%20%20%20%20%20%20%20%20ibis.window(order_by%3Dibis.desc(%22avg_elevation%22))%2C%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20is_other%3D_.rank%20%3E%204%2C%0A%20%20%20%20%20%20%20%20state_grouped%3Dibis.cases((_.is_other%2C%20%22OTHER%22)%2C%20else_%3D_.state)%2C%0A%20%20%20%20)%0A%20%20%20%20.group_by(%22state_grouped%22)%0A%20%20%20%20.aggregate(%0A%20%20%20%20%20%20%20%20airport_count%3D_.data.count()%2C%0A%20%20%20%20%20%20%20%20avg_elevation%3D_.data.elevation.mean()%2C%0A%20%20%20%20)%0A%20%20%20%20.order_by(_.avg_elevation.desc())%0A%20%20%20%20%22%22%22%0A%0A%20%20%20%20q1_e%20%3D%20eval(%22(%22%20%2B%20q1%20%2B%20%22)%22)%0A%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20mo.md(f%22%60%60%60python%5Cn%7Bq1%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20mo.ui.tabs(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%93%8A%20Table%22%3A%20mo.ui.table(q1_e.execute())%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%93%88%20Chart%22%3A%20q1_e.chart(backend%3D%22altair%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%92%BB%20SQL%22%3A%20mo.md(f%22%60%60%60sql%5Cn%7Bq1_e.sql()%7D%5Cn%60%60%60%22)%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20text_cell(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%23%23%20Key%20Insights%0A%0A%20%20%20%20The%20query%20shows%3A%0A%20%20%20%20-%20**Top%204%20states**%20with%20highest%20average%20elevation%20(CO%2C%20WY%2C%20NM%2C%20UT)%0A%20%20%20%20-%20**OTHER**%20category%20aggregating%20all%20remaining%20states%0A%20%20%20%20-%20**Total%20airport%20count**%20preserved%20across%20all%20groups%0A%0A%20%20%20%20This%20pattern%20is%20powerful%20for%3A%0A%20%20%20%20-%20Creating%20%22Top%20N%20%2B%20Other%22%20reports%0A%20%20%20%20-%20Maintaining%20data%20completeness%20while%20focusing%20on%20key%20segments%0A%20%20%20%20-%20Building%20clean%2C%20focused%20visualizations%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
2ee9d7e7d1d60b7038a9bcf809900ffa5f1df8dcdd29a44725d9c147ea0ddf5d