Configure a number column in st.dataframe or st.data_editor.

This is the default column type for integer and float values. This command needs to be used in the column_config parameter of st.dataframe or st.data_editor. When used with st.data_editor, editing will be enabled with a numeric input widget.

Function signature[source]

st.column_config.NumberColumn(label=None, *, width=None, help=None, disabled=None, required=None, default=None, format=None, min_value=None, max_value=None, step=None)

Parameters

label (str or None)

The label shown at the top of the column. If None (default), the column name is used.

width ("small", "medium", "large", or None)

The display width of the column. Can be one of "small", "medium", or "large". If None (default), the column will be sized to fit the cell contents.

help (str or None)

An optional tooltip that gets displayed when hovering over the column label.

disabled (bool or None)

Whether editing should be disabled for this column. Defaults to False.

required (bool or None)

Whether edited cells in the column need to have a value. If True, an edited cell can only be submitted if it has a value other than None. Defaults to False.

default (int, float, or None)

Specifies the default value in this column when a new row is added by the user.

format (str or None)

A printf-style format string controlling how numbers are displayed. This does not impact the return value. Valid formatters: %d %e %f %g %i %u. You can also add prefixes and suffixes, e.g. "$ %.2f" to show a dollar prefix.

Number formatting from column_config always takes precedence over number formatting from pandas.Styler.

min_value (int, float, or None)

The minimum value that can be entered. If None (default), there will be no minimum.

max_value (int, float, or None)

The maximum value that can be entered. If None (default), there will be no maximum.

step (int, float, or None)

The stepping interval. Specifies the precision of numbers that can be entered. If None (default), uses 1 for integers and unrestricted precision for floats.

Examples

import pandas as pd
import streamlit as st

data_df = pd.DataFrame(
    {
        "price": [20, 950, 250, 500],
    }
)

st.data_editor(
    data_df,
    column_config={
        "price": st.column_config.NumberColumn(
            "Price (in USD)",
            help="The price of the product in USD",
            min_value=0,
            max_value=1000,
            step=1,
            format="$%d",
        )
    },
    hide_index=True,
)
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.