Я сделал программу, которая берет CSV-файлы и подсчитывает средние значения. Пытаюсь сделать интерфейс в Streamlit. Я пытаюсь использовать решение из моей программы
data = st.file_uploader("Wybierz pliki CSV:",type = 'csv', accept_multiple_files=True)
for file in data:
Table = pd.read_csv(file, sep=',')
DF1 = pd.DataFrame(Table)
DFL = pd.concat([DFL,DF1], sort=False)
Когда я пытаюсь распечатать это с помощью st.dataframe(DFL)
Я получаю эту ошибку:
StreamlitAPIException: ("Не удалось преобразовать "06028001018" с типом str: попытка преобразования в int64", "Сбой преобразования для столбца LPROS1 с типом объекта")
Кто-нибудь знает, как это конкатировать?
Попробуйте так:
data = st.file_uploader("Wybierz pliki CSV:",type = 'csv',
accept_multiple_files=True)
Table = []
for file in data:
if file.endswith(".csv"):
Table.append(pd.read_csv(file)
df = pd.concat(Table, sort=False)
Попробуйте без .endswith(".csv")
Я пытался, но получаю ошибку: StreamlitAPIException: («Не удалось преобразовать ‘06028001018’ с типом str: попытался преобразовать в int64», «Ошибка преобразования для столбца LPROS1 с типом объекта»). Та же ошибка, что и в начале.
Перепроверьте свое сообщение об ошибке.
StreamlitAPIException: ("Could not convert '06028001018' with type str: tried to convert to int64", 'Conversion failed for column LPROS1 with type object')
Речь идет о типе данных в столбце LPROS1.
Хорошо, но я не конвертирую этот столбец, я не знаю, почему Streamlit пытается его преобразовать. Я просто хочу сделать один большой DF.
StreamlitAPIException: ("Could not convert '06028001018' with type str: tried to convert to int64", 'Conversion failed for column LPROS1 with type object')
Это ошибка, появившаяся в обтекаемый 0.85.0. pyarrow
имеет проблему со значениями numpy.dtype
(которые возвращает df.dtypes
).
В качестве обходного пути вы можете добавить следующие строки в свой код.
DF2 = DFL.astype(str)
st.dataframe(DFL2)
или попробуйте другой предложенный обходной путь отсюда
Рад, что помогло :)
Я пробую ваш код, но получаю ту же ошибку.