Streamlit table data lost?

会社技術

lost ver

When you execute below code, the table data is lost.

import streamlit as st
import pandas as pd

df=pd.DataFrame()
edited_df=pd.DataFrame()
Flag1=st.button(label='click me01!')
Flag1

if Flag1:
    st.write('Thank you')
    df = pd.read_csv("tmp.csv")

edited_df = st.experimental_data_editor(df)

video

no lost ver

When you execute below code, the table data is remain.

import streamlit as st
import pandas as pd

df=pd.DataFrame()
edited_df=pd.DataFrame()
Flag1=st.button(label='click me01!')
Flag1

if 'df' not in st.session_state:
    st.session_state.df = pd.DataFrame()

if Flag1:
    st.write('Thank you')
    df = pd.read_csv("tmp.csv")
    st.session_state.df=df

edited_df = st.experimental_data_editor(st.session_state.df)

video

Point

st.session_state.df was cleated by void pandas data frame at if ‘df’ not in st.session_state. In this case, when table was edited, edited_df was remained. But I don’t know why edited data was remain, when Flag1 was on.

コメント