Data_editor deletes extra rows

So I have a data_editor and an additional component that both edit a target dataframe. The problem is, when I delete rows and save on the button the dataframe the data_editor deletes two extra rows by itself. I am also getting the issue in:
Using agGrid sometimes changes the page to “undefined” reseting the session state - :jigsaw: Streamlit Components / streamlit-aggrid - Streamlit
In that same page

import pandas as pd
import streamlit as st
df_new_programs=pd.DataFrame({"id":[3,7],"var":[1.1, 10.5]})
if "df" not in st.session.state
     st.session_state["df"]=pd.DataFrame(columns=["id","var"])
if st.button("save"):
     st.session_state["df"]=st.session_state["df_edited"]
if st.button("add programs"):
     st.session_state.df=pd.concat([df_new_programs, st.session_state.df])

st.session_state["df_edited"]=st.data_editor(st.session_state, num_rows="dynamic")

Calculate(st.session_state.df)

Hi @pizza,

Thanks for posting!

Can you provide more complete code snippets for us to replicate and troubleshoot the error for you?

It seems to work now that I added a line saving the df with the new programs added to the session state (df_edited) that has the output of the data_editor too:

import pandas as pd
import streamlit as st
df_new_programs=pd.DataFrame({"id":[3,7],"var":[1.1, 10.5]})
if "df" not in st.session.state
     st.session_state["df"]=pd.DataFrame(columns=["id","var"])
if st.button("save"):
     st.session_state["df"]=st.session_state["df_edited"]
if st.button("add programs"):
     st.session_state.df=pd.concat([df_new_programs, st.session_state.df])
import pandas as pd
import streamlit as st
df_new_programs=pd.DataFrame({"id":[3,7],"var":[1.1, 10.5]})
if "df" not in st.session.state
     st.session_state["df"]=pd.DataFrame(columns=["id","var"])
if st.button("save"):
     st.session_state["df"]=st.session_state["df_edited"]
if st.button("add programs"):
     st.session_state.df=pd.concat([df_new_programs, st.session_state.df])
     st.session_state["df_edited"]=st.session_state.df ####HERE 


st.session_state["df_edited"]=st.data_editor(st.session_state, num_rows="dynamic")

Calculate(st.session_state.df)

I also solved the bug that could be responsible too that you can see in the thread I linked by rolling back the version of st-pages. My snippet would have to have this part too to reproduce it if it that’s the problem:

from st_pages import add_page_title, show_pages_from_config
add_page_title()
show_pages_from_config()

And the rest of the pagination files

1 Like

Awesome! Glad to hear it is resolved.

Happy Streamlit-ing! :balloon:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.