24

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)
vvvvv
  • 25,404
  • 19
  • 49
  • 81
Fikri Sambasri
  • 247
  • 1
  • 2
  • 8
  • 2
    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. – Community Oct 16 '21 at 05:24

2 Answers2

29

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

Ailurophile
  • 2,552
  • 7
  • 21
  • 46
  • 1
    Great! I used the `"legacy"` option, and it works just fine. Every problem has a solution here already, marvellous! – Constantine Kurbatov Nov 24 '21 at 03:44
  • 1
    Using 'legacy' serializer will negate the [benefits](https://blog.streamlit.io/all-in-on-apache-arrow/) from the new Arrow based data frame serializer if your data frame size is large. So suggest using str conversion before display as interim. – sudheer Feb 16 '22 at 12:24
0

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

ahmedshahriar
  • 1,053
  • 7
  • 25