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

如何使数据列仅在必要时显示小数?(金额转万单位场景)

解决方法

先完成数值转换,再针对每个值判断是否为整数,仅在必要时保留小数:

基础实现

先计算转换后的数值列:

import pandas as pd
# 假设housing是你的DataFrame
medianIncome_num = housing['medianIncome'].astype(float) / 10000

然后处理格式,自动去除不必要的小数:

medianIncome1 = medianIncome_num.apply(lambda x: str(int(x)) if x.is_integer() else str(x))

逻辑说明:如果转换后的值是整数(比如15.0),就转成int类型再转字符串,得到"15";如果是小数(比如1.5),直接转字符串保留小数部分。

处理浮点数精度问题

由于浮点数运算可能存在精度误差(比如150000/10000本应是15.0,但可能出现15.0000000001或14.9999999999的情况),可以加入精度判断优化:

medianIncome1 = medianIncome_num.apply(
    lambda x: str(int(round(x, 2))) if abs(x - round(x, 2)) < 1e-6 else str(round(x, 1))
)

这里先将数值四舍五入到2位小数,判断是否接近整数,是则转成整数字符串,否则保留1位小数(符合你示例中的1.5格式)。

简洁格式化写法

也可以用字符串格式化语法,自动去除末尾的无效0:

medianIncome1 = medianIncome_num.apply(lambda x: f"{x}" if not x.is_integer() else f"{int(x)}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:20:35