Notebooks render years as "2,027" — int32/int64 year columns hit marimo table thousands-separator formatting #643
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Systemic display bug. marimo's data-table viewer (raw DataFrame cell output and
mo.ui.table) formats integer columns with locale thousands separators, so any year-like column that reaches a table as int32/int64 (DuckDBSELECT year) or Python-int-builtpl.DataFramerenders as2,027.Affected display sites (chart axes are safe — all year axes already use
:O; Vega tooltips print numbers unformatted):notebooks/pfs_calcs.py—carrier_result,sql_resultraw displays (year)notebooks/pfs_reconciliation.py—result.deltasraw display (year)notebooks/cy2026_pfs_proposed_rule.py—apm_thresholdsraw display (performance_year,payment_year)notebooks/cy2027_pfs_proposed_rule.py—apm_thresholdsraw display (qp_performance_period,payment_year)notebooks/cms_quality_measures.py— pipeline-result accordionsmo.ui.table(_df.head(50))(frames carryperformance_year)Fix: add
conf.display.plain_years(df, *cols)— casts year-like integer columns (year,*_year,*_period; autodetected, or explicit) to strings at the display boundary only, leaving analysis frames integer-typed — and apply it at each site above. Unit-tested for polars and pandas.