How to fix StreamlitAPIException: ("Expected bytes, got a 'int' object", 'Conversion failed for column FG% with type object')
Asked Answered
F

2

26

Error:

StreamlitAPIException: ("Expected bytes, got a 'int' object", 'Conversion failed for column FG% with type object')

Error Traceback

Traceback:
File "C:\Users\ASUS\streamlit_freecodecamp-main\app_3_eda_basketball\basketball_app.py", line 44, in <module>
    st.dataframe(df_selected_team)
Forevermore answered 14/10, 2021 at 23:33 Comment(1)
Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.Tripody
P
32

It’s a bug that came with streamlit 0.85.0. pyarrow has an issue with numpy.dtype values (which df.dtypes returns).

The issue has been filed and hopefully will be taken care of soon.

A possible workaround is to convert DataFrame cells to strings with df.astype(str)

In your case

test = df_selected_team.astype(str)
st.dataframe(test)

or

downgrade your streamlit version to 0.84

or

A preferable solution for this is to use the old dataframe serializer by setting this in your .streamlit/config.toml file:

[global]
dataFrameSerialization = "legacy"

This allows you to continue upgrading to the latest version of Streamlit.

Follow this thread for more updates

Pelagi answered 15/10, 2021 at 7:47 Comment(2)
Great! I used the "legacy" option, and it works just fine. Every problem has a solution here already, marvellous!Ignorance
Using 'legacy' serializer will negate the benefits from the new Arrow based data frame serializer if your data frame size is large. So suggest using str conversion before display as interim.Ne
A
0

I had the same problem. Then I downgraded my streamlit version to make it work, currently, I'm running streamlit 0.75.

Archipenko answered 18/10, 2021 at 19:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.