Introducing st.experimental_data_editor, a widget that allows you to edit DataFrames and many other data structures in a table-like UI. Read more in our documentation and blog post.
But unfortunately not working for me. When I’m just using the example code (and example dataframe) from the documentation I get “TypeError: data type ‘complex256’ not understood”.
Interestingly I get the same error triggered by st.write(df.dtypes). Seems to be a problem in streamlit\type_util.py, line 653, in is_colum_type_arrow_incompatible.
Thanks! It would be very helpful if you could report it here as an issue with the exception and the snippet you used. This sounds like something that might need a fix asap: Issues · streamlit/streamlit · GitHub
Is there any ability to hide the index column? I noticed this is possible with markdown for st.table but not st.dataframe for streamlit versions >1.10, and it doesn’t appear available for this either? Thanks, trying to make pretty tables for client .
P.S. would love the functionality to limit the users ability to manipulate data by column. For example if I want user to be able select a checkbox in a new column as shown in the release example, BUT not allow them to accidentally manipulate any other data, which IMO is easy to do when playing around with this.
Perfect! We have been waiting for this update for a while. After a quick try with my application, I have some questions:
1. It has already been asked in the comments; however, I want to remind you. Is it possible to delete the indexing column since we can add custom indexing? 2. Is there a way to set the total width to the page width so that the column widths are arranged accordingly? 3. Is it possible to colorize the cell background or cell edge?
Setting data_editor to dynamic shows one of the features that i was looking for which is a selectable checkbox. but it seems that it is only useful for editing the table. i would like to be able to get information from the rows selected as in aggrid.
I added a column with checkbox starting with all values False. Then once user checks certain boxes you can subset the edited data frame where the value of that column is now True. I think this is an example of what you’re asking for.
Spoiler alert! Apparently, when updating our docs @snehankekre scooped a secret feature that’s coming soon
So the answer is: you can’t do that today but, if you want to be pleasantly surprised, just wait a couple of releases. @jrieke and @lukasmasuch are working on it!
Here’s a hack (if you are using data frames) to get rid of the index column in the display, by first setting the index to a new index column I want, then resetting the index after to get back to my original data frame (but now with user edits). I think it could work if you are wanting to customize index, but it definitely depends on the type of data you are showing. It works for me without breaking downstream code that uses the edited df and looks much better in display.
Example:
df = df.set_index(‘New Index Column’)
edited_df = st.experimental_data_editor(df)
edited_df = edited_df.reset_index()
Also use_container_width=True is a parameter option which I think answers your 2nd question?
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.