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.
Other Changes
Streamlitâs GitHub README got a new look (#6016).
Improved readability of styled dataframe cells in dark mode (#6060, #6098).
Bug fix: make apps work again in the latest versions of Safari, and in Chrome with third-party cookies blocked (#6092, #6094, #6087, #6100).
Bug fix: refer to new cache primitives in the âClear cacheâ dialog and error messages (#6082, #6128).
Bug fix: properly cache class member functions and instance methods (#6109, #6114).
Bug fix: regression in st.metric tooltip position (#6093, #6129).
Bug fix: allow fullscreen button to show for dataframes, charts, etc, in expander (#6083, #6148).
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?