使用 Streamlit 将行添加到数据框

Add Row to Dataframe With Streamlit

我有一个包含我的股票投资组合的数据框。我希望能够在 streamlit 上将一只股票添加到我的投资组合中。我的边栏中有文本输入,我在其中输入了代码等。当我尝试在数据框的末尾添加代码时,它不起作用。

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

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

代码[len(df)+1]无效。当我尝试执行 [len(df)-1] 时,它起作用了,但我想将它添加到数据框的末尾,而不是替换最后一只股票。似乎无法向数据框添加一行。

解决方案

您必须先检查 ticker_add 的类型。

type(ticker_add)

向数据框添加新行

  1. 假设您的 ticker_add 是一个以数据框 df 的列名作为键的字典,您可以这样做:

    df.append(pd.DataFrame(ticker_add))
    
  2. 假设是单non-array-like输入,可以这样做:

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

参考资料

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