如何使用streamlit和python根据数据框中的字段数添加列
Posted
技术标签:
【中文标题】如何使用streamlit和python根据数据框中的字段数添加列【英文标题】:How to add columns based on the number of the fileds in the dataframe using streamlit and python 【发布时间】:2022-01-02 23:24:41 【问题描述】:我有一个流线型应用程序,它可以读取 csv 文件并将内容显示为数据框。
我需要将列名显示为text_input
,方法是使用st.columns()
,将它们以水平布局并排显示。
问题是当我运行应用程序时它崩溃并显示以下错误:
StreamlitAPIException: The input argument to st.columns must be either a positive integer or a list of positive numeric weights. See documentation for more information.
Traceback:
File "F:\AIenv\streamlit\app2.py", line 1580, in <module>
main()
File "F:\AIenv\streamlit\app2.py", line 479, in main
cols = st.columns(ncol)
代码:
num_new_rows = st.sidebar.number_input("Add Rows",1,50)
ncol = st.session_state.df.shape[1]
with st.form(key='add_record_form',clear_on_submit= True):
st.subheader("Add Record")
cols = st.columns(ncol)
rwdta = [
cols[i].text_input(st.session_state.df.columns[i]) for i in range(ncol)
]
【问题讨论】:
您可以在cols = st.columns(ncol)
之前添加print(ncol)
并分享结果吗?
【参考方案1】:
问题在于它接缝的文件类型,streamlit 改变了他分配所选文件类型的方式,如果它的 csv:
文件类型为:“application/vnd.ms-excel” 现在文件类型是:“text/csv”所以解决方法是更改文件类型。
【讨论】:
以上是关于如何使用streamlit和python根据数据框中的字段数添加列的主要内容,如果未能解决你的问题,请参考以下文章
Python Streamlit - 过滤熊猫数据框而不重新运行整个脚本
如何将 pandas.style 与 streamlit 一起使用
如何使用 plotly 和 streamlit 绘制 groupby