Choose value from into st.experimental_data_editor table

I was wondering if it is possible to implement the abillity for the user to choose a value from into st.experimental_data_editor table?
Also, if the desired value is not in the given list, to let the user write as st.input the string.


Iโ€™m taking a little guess as to your meaningโ€ฆ

You can set a column to have categorical data type. In this instance the data editor will present the user with a select box when they edit cells in that column.

import streamlit as st
import pandas as pd

if 'df' not in st.session_state:
    df = pd.DataFrame({'A':[True, False, True],'B':['cat','cat','dog']})
    df['B'] = df['B'].astype(pd.CategoricalDtype(['cat','dog','bird']))
    st.session_state.df = df

df = st.session_state.df

st.experimental_data_editor(df, num_rows='dynamic')



thanks so much for you solution. My case is a bit different: each time I load different values from a dict and transform them into an editible dataframe.
as you can see it includes annotation data of labels and bounding-box locations. In my app, the user can add a row, to add a new annotation. I want the app to allow the user to choose from the above lables, the new label name (or set a new label).
Hope now its well-explained

I donโ€™t believe a conditional categorical type can be declared like that (at least yet).