как добавить столбцы на основе количества файлов во фрейме данных с помощью streamlit и python

#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»

поэтому решение заключалось в изменении типа файла.