Save User Input into a DataFrame and Access Later

Hi,

I want to create an App which shows a images to a customer based on its user id and takes inputs from them basis some filters.

Is there a way to save all the inputs into a Dataframe and access that later ? There could be multiple users entering at the same time.

Thanks,
Nikhil

Hi @Nikhil_Agarwal, welcome to Streamlit!

Iโ€™m not sure I completely understand what youโ€™re asking, but yes - you can certainly save the results of inputs to a Dataframe (or any other structure) using Streamlit.

import streamlit as st
import pandas as pd

@st.cache(allow_output_mutation=True)
def get_data():
    return []

user_id = st.text_input("User ID")
foo = st.slider("foo", 0, 100)
bar = st.slider("bar", 0, 100)

if st.button("Add row"):
    get_data().append({"UserID": user_id, "foo": foo, "bar": bar})

st.write(pd.DataFrame(get_data()))

This example appends entries to a cached list, and then converts that list to a dataframe on demand. If youโ€™ll have multiple users editing this simultaneously, you probably want to append to a file on disk every time the โ€œAdd Rowโ€ button is pressed, rather than just appending to an in-memory file.

3 Likes

Hello suppose I am creating a user registration form where the user inputs name and email id for example. So can I have the data stored in a dataframe or maybe excel file while my app is deployed and still running ?

hey @tim! thanks for this code! I want to add a delete button to delete rows but the list is an in-memory list - how would i be able to delete a row this way? (usecase: the user may make a mistake with the โ€œAdd rowโ€ button and I want to have a way to handle for that)

3 Likes