You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit写入DataFrame时如何设置保留两位小数?

问题:Streamlit中st.write()展示DataFrame时保留两位小数的问题

现有Python代码:

import streamlit as st
import pandas as pd

data = {'Days': ["Sunday", "Wednesday", "Friday"],
        'Predictions': [433.11, 97.9, 153.65]}
df = pd.DataFrame(data)
st.write(df)

使用st.write()展示DataFrame时,默认显示四位小数,输出如下:

Days     | Predictions
-------------|-------------
0   Sunday   |  433.1100  |
1   Wednesday|  97.9000   |
2   Friday   |  153.6500  |

尝试用df.round(2)处理但无效果,期望输出格式为:

Days     | Predictions
-------------|-------------
0   Sunday   |  433.11    |
1   Wednesday|  97.90     |
2   Friday   |  153.65    |
解决方案

方法1:设置Pandas全局显示格式

通过修改Pandas的显示配置,统一指定浮点数的小数位数:

import streamlit as st
import pandas as pd

# 全局设置浮点数显示两位小数
pd.options.display.float_format = '{:.2f}'.format

data = {'Days': ["Sunday", "Wednesday", "Friday"],
        'Predictions': [433.11, 97.9, 153.65]}
df = pd.DataFrame(data)
st.write(df)

该方法会影响所有Pandas数据的显示格式,适合全局统一要求的场景。

方法2:使用st.dataframe()指定列格式

Streamlit的st.dataframe()支持更精细化的列配置,可单独指定目标列的显示规则:

import streamlit as st
import pandas as pd

data = {'Days': ["Sunday", "Wednesday", "Friday"],
        'Predictions': [433.11, 97.9, 153.65]}
df = pd.DataFrame(data)

# 定义列格式,指定Predictions列保留两位小数
column_config = {
    "Predictions": st.column_config.NumberColumn(
        "Predictions",
        format="%.2f"
    )
}
st.dataframe(df, column_config=column_config)

此方法仅针对指定列生效,不会影响其他数据的显示逻辑,灵活性更高。

方法3:将数值列转为格式化字符串(仅适用于无需后续计算的场景)

如果不需要对该列进行数值运算,可直接将其转换为带两位小数的字符串:

import streamlit as st
import pandas as pd

data = {'Days': ["Sunday", "Wednesday", "Friday"],
        'Predictions': [433.11, 97.9, 153.65]}
df = pd.DataFrame(data)

# 格式化Predictions列为两位小数的字符串
df['Predictions'] = df['Predictions'].apply(lambda x: "{:.2f}".format(x))
st.write(df)

注意:该操作会将数值类型转为字符串,若后续需对该列做计算,不建议使用。

内容的提问来源于stack exchange,提问作者Jamiu S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:45:39