Louis
Louis

Reputation: 307

Add Row to Dataframe With Streamlit

I have a data frame with my stock portfolio. I want to be able to add a stock to my portfolio on streamlit. I have text input in my sidebar where I input the Ticker, etc. When I try to add the Ticker at the end of my dataframe, it does not work.

ticker_add = st.sidebar.text_input("Ticker")

df['Ticker'][len(df)+1] = ticker_add

The code [len(df)+1] does not work. When I try to do [len(df)-1], it works but I want to add it to the end of the dataframe, not replace the last stock. It seems like it can't add a row to the dataframe.

Upvotes: 0

Views: 3408

Answers (1)

CypherX
CypherX

Reputation: 7353

Solution

You MUST first check the type of ticker_add.

type(ticker_add)

Adding new row to a dataframe

  1. Assuming your ticker_add is a dictionary with the column names of the dataframe df as the keys, you can do this:

    df.append(pd.DataFrame(ticker_add))
    
  2. Assuming it is a single non-array-like input, you can do this:

    # adds a new row for a single column ("Ticker") dataframe
    df = df.append({'Ticker': ticker_add}, ignore_index=True)
    

References

  1. Add one row to pandas DataFrame
  2. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html

Upvotes: 3

Related Questions