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

DataFrame数字格式化:按自定义逻辑格式化指定数据子集

Pandas DataFrame 自定义列格式化实现方法

针对分列定制数字格式化的需求,可根据实际使用场景选择以下两种实现方式:


方案1:直接修改列值(适合导出、后续复用格式化结果)

该方式会直接将对应列转换为格式化后的字符串值,处理后可直接导出为Excel、CSV等文件,输出效果和需求完全匹配。
首先构造示例原始数据:

import pandas as pd

# 初始化示例原始DataFrame
df = pd.DataFrame({
    "国家": ["美国", "日本", "中国", "英国", "欧元区"],
    "最新值": [8.60, 2.50, 2.00, 9.10, 8.10],
    "前值": [8.30, 2.50, 2.10, 9.00, 7.40],
    "绝对变动": [0.30, 0.00, -0.10, 0.10, 0.70]
})

执行格式化处理代码:

# 最新值、前值列保留1位小数
df[["最新值", "前值"]] = df[["最新值", "前值"]].round(1).astype(str)

# 绝对变动列转换为基点单位:数值*100后拼接bp后缀
df["绝对变动"] = (df["绝对变动"] * 100).astype(int).astype(str) + " bp"

处理后打印df即可得到需求中的格式化结果。


方案2:仅渲染层格式化(适合Jupyter类场景展示,不修改原始值)

如果需要保留原始数值做后续计算,仅在表格展示时应用格式化规则,可以用pandas原生的style格式化接口,不会改动原始数据类型:

# 定义各列的格式化规则
formatter = {
    "最新值": "{:.1f}",
    "前值": "{:.1f}",
    "绝对变动": lambda x: f"{int(x * 100)} bp"
}

# 渲染格式化后的表格
styled_df = df.style.format(formatter)

在Notebook环境中直接渲染styled_df就能看到格式化后的展示效果,原始df的数值仍然是浮点类型,不影响后续统计计算。

注意:如果业务场景存在非整数基点(如0.5bp),可以去掉转int的逻辑,按需调整小数保留位数即可,例如将绝对变动的格式化规则改为lambda x: f"{x * 100:.1f} bp"就能保留1位小数的基点值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:27:26