使用 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)
向数据框添加新行
假设您的 ticker_add
是一个以数据框 df
的列名作为键的字典,您可以这样做:
df.append(pd.DataFrame(ticker_add))
假设是单non-array-like输入,可以这样做:
# adds a new row for a single column ("Ticker") dataframe
df = df.append({'Ticker': ticker_add}, ignore_index=True)
参考资料
- Add one row to pandas DataFrame
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html
我有一个包含我的股票投资组合的数据框。我希望能够在 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)
向数据框添加新行
假设您的
ticker_add
是一个以数据框df
的列名作为键的字典,您可以这样做:df.append(pd.DataFrame(ticker_add))
假设是单non-array-like输入,可以这样做:
# adds a new row for a single column ("Ticker") dataframe df = df.append({'Ticker': ticker_add}, ignore_index=True)
参考资料
- Add one row to pandas DataFrame
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html