如何解决大整数的streamlit更改格式类型 我做了什么?编辑:
假设我有一个简单的 pandas
数据框,并且我想使用 streamlit
在网络应用程序中显示这些值:
import pandas as pd
import streamlit as st
df = pd.DataFrame({'a': [1174505943511396352,2414501743231376356]})
st.table(df)
打印数据框给了我:
>>> df
a
0 1174505943511396352
1 2414501743231376356
但网络应用程序内的结果将如下所示:
如您所见,这些值不正确,它们以某种方式四舍五入并且未显示原始值。
我做了什么?
- 我尝试更改数据框的
dtype
,但没有奏效:
df['a'] = df['a'].astype(np.uint64)
st.table(df) # no changes!
- 我也试过
style.format
,但也没有用:
func = lambda x: np.uint64(x)
df = df.style.format({"a": func}
st.table(df) # I got errors as below
错误信息:
Traceback (most recent call last):
File "c:\users\a.tabarayi\desktop\analyze-clustering-results\venv\lib\site-packages\streamlit\script_runner.py",line 349,in _run_script
exec(code,module.__dict__)
File "C:\Users\a.tabarayi\Desktop\analyze-clustering-results\src\app.py",line 90,in <module>
st.table(x)
File "c:\users\a.tabarayi\desktop\analyze-clustering-results\venv\lib\site-packages\streamlit\elements\data_frame.py",line 120,in table
marshall_data_frame(data,table_proto)
File "c:\users\a.tabarayi\desktop\analyze-clustering-results\venv\lib\site-packages\streamlit\elements\data_frame.py",line 150,in marshall_data_frame
File "c:\users\a.tabarayi\desktop\analyze-clustering-results\venv\lib\site-packages\streamlit\elements\data_frame.py",line 169,in _marshall_styles
translated_style = styler._translate()
TypeError: _translate() missing 2 required positional arguments: 'sparse_index' and 'sparse_cols'
任何帮助将不胜感激,谢谢!
编辑:
以下解决方案似乎对我有用,但如果有更好的方法来防止不必要的类型转换,请告诉我!
df['a'] = df['a'].astype(str)
st.table(df)
解决方法
我认为这是streamlit中的一个错误,他们已经解决了。不知道什么时候对“普通”用户开放
https://github.com/streamlit/streamlit/issues/3526
https://github.com/streamlit/streamlit/pull/3536
下周将发布补丁,并在接下来的几周内进行小更新 (*)。与此同时,你可以改变你的requirements.txt并把
pandas==1.1.4
在里面
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。