#python #pandas #streamlit
Вопрос:
У меня есть приложение с потоковым освещением, которое считывает 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:AIenvstreamlitapp2.py", line 1580, in lt;modulegt; main() File "F:AIenvstreamlitapp2.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) ]
Комментарии:
1. Можете ли вы добавить
print(ncol)
непосредственно передcols = st.columns(ncol)
этим и поделиться результатом?
Ответ №1:
проблема заключалась в типе файла, который он использует, что streamlit изменил способ, которым он назначает тип выбранного файла, где, если его csv :
- тип файла был: «приложение/vnd.ms-excel».
- теперь тип файла : «текст/csv»
поэтому решение заключалось в изменении типа файла.