Table¶
- class marimo.ui.table(data: ListOrTuple[str | int | float | bool | MIME | None] | ListOrTuple[Dict[str, JSONType]] | Dict[str, ListOrTuple[JSONType]] | 'pd.DataFrame' | 'pl.DataFrame' | 'pa.Table', pagination: bool | None = None, selection: Literal['single', 'multi'] | None = 'multi', page_size: int = 10, show_column_summaries: bool = True, format_mapping: Dict[str, str | Callable[..., Any]] | None = None, *, label: str = '', on_change: Callable[[List[JSONType] | Dict[str, ListOrTuple[JSONType]] | 'pd.DataFrame' | 'pl.DataFrame' | 'pa.Table'], None] | None = None, _internal_row_limit: int | None = None, _internal_summary_row_limit: int | None = None, _internal_total_rows: int | Literal['too_many'] | None = None)¶
- A table component with selectable rows. Get the selected rows with - table.value.- The table data can be supplied a: - a list of dicts, with one dict for each row, keyed by column names; 
- a list of values, representing a table with a single column; 
- a Pandas dataframe; or 
- a Polars dataframe. 
 - Examples. - Create a table from a list of dicts, one for each row. - table = mo.ui.table( data=[ {"first_name": "Michael", "last_name": "Scott"}, {"first_name": "Dwight", "last_name": "Schrute"}, ], label="Users", ) - Create a table from a single column of data: - table = mo.ui.table( data=[ {‘first_name’: ‘Michael’, ‘last_name’: ‘Scott’}, {‘first_name’: ‘Dwight’, ‘last_name’: ‘Schrute’} ], label=‘Users’ ) - Create a table from a dataframe: - # df is a Pandas or Polars dataframe table = mo.ui.table( data=df, # use pagination when your table has many rows pagination=True, label="Dataframe", ) - Create a table with format mapping: - # format_mapping is a dict keyed by column names, # with values as formatting functions or strings def format_name(name): return name.upper() table = mo.ui.table( data=[ {"first_name": "Michael", "last_name": "Scott", "age": 45}, {"first_name": "Dwight", "last_name": "Schrute", "age": 40}, ], format_mapping={ "first_name": format_name, # Use callable to format first names "age": "{:.1f}".format, # Use string format for age }, label="Format Mapping", ) - In each case, access the table data with - table.value.- Attributes. - value: the selected rows, in the same format as the original data, or- Noneif no selection
- data: the original table data
 - Initialization Args. - data: Values can be primitives (- str,- int,- float,- bool, or- None) or marimo elements: e.g.- mo.ui.button(...),- mo.md(...),- mo.as_html(...), etc. Data can be passed in many ways:- as dataframes: a pandas dataframe, a polars dataframe 
- as rows: a list of dicts, where each dict represents a row in the table 
- as columns: a dict keyed by column names, where the value of each entry is a list representing a column 
- as a single column: a list of values 
 
- pagination: whether to paginate; if- False, all rows will be shown defaults to- Truewhen above 10 rows,- Falseotherwise
- selection: ‘single’ or ‘multi’ to enable row selection, or- Noneto disable
- page_size: the number of rows to show per page. defaults to 10
- show_column_summaries: whether to show column summaries
- format_mapping: a mapping from column names to formatting strings or functions
- label: text label for the element
- on_change: optional callback to run when this element’s value changes
 - Public methods - download_as(args)- get_column_summaries(args)- search(args)- Inherited from- UIElement- form([label, bordered, loading, ...])- Create a submittable form out of this - UIElement.- send_message(message, buffers)- Send a message to the element rendered on the frontend from the backend. - Inherited from- Html- batch(**elements)- Convert an HTML object with templated text into a UI element. - center()- Center an item. - right()- Right-justify. - left()- Left-justify. - callout([kind])- Create a callout containing this HTML element. - style(style)- Wrap an object in a styled container. - Public Data Attributes: - data- Inherited from- UIElement- value- The element’s current value. - Inherited from- Html- text- A string of HTML representing this element.