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

为何无法为DataFrame添加更多格式设置?含USD货币格式需求

解决方法

你之前报错是因为已经把df赋值成了Styler对象,再调用.style就会找不到属性。Pandas的Styler支持链式调用,把多个样式操作连起来写就行,不用分开赋值。

具体操作:

  1. 确定需要设置USD格式的目标列名(比如你的Excel里对应的列叫销售额或Revenue)
  2. 用.format()方法,传入一个字典:键是列名,值是货币格式字符串'${:,.0f}'——这个格式会自动添加$符号、千分位逗号,且不显示小数。
  3. 把highlight_null和format链式调用,最后赋值给新变量(或直接传入st.table)

修改后的完整代码:

import streamlit as st
import pandas as pd

st.set_page_config(page_title="Page Title", page_icon=":bar_chart:", layout="wide")
st.title("Analytics")
st.sidebar.success("Directory")

df = pd.read_excel(
        io="file.xlsx",
        engine="openpyxl",
        sheet_name="Sheet1",
        skiprows=1,
        usecols="B:L",
        nrows=60
)

st.markdown("### Detailed Data View")

# 链式调用多个样式方法,替换原来的单独赋值
df_styled = df.style.highlight_null(props="color: transparent;")\
                     .format({'目标列名': '${:,.0f}'})  # 替换成你实际需要设置的列名

# 如果有多列要设置,扩展字典即可:
# df_styled = df.style.highlight_null(props="color: transparent;")\
#                      .format({'列1': '${:,.0f}', '列2': '${:,.0f}'})

st.table(df_styled)

格式字符串说明:

  • $:直接添加美元符号
  • ,:启用千分位分隔符
  • .0f:保留0位小数,只显示整数

内容的提问来源于stack exchange,提问作者NewWorldRonin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 00:03:13