微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大整数的streamlit更改格式类型 我做了什么?编辑:

如何解决大整数的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

但网络应用程序内的结果将如下所示:

result

如您所见,这些值不正确,它们以某种方式四舍五入并且显示原始值

我做了什么?

  • 我尝试更改数据框的 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 举报,一经查实,本站将立刻删除。