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

如何去除PySpark DataFrame数值列小数点后多余0并保留四位小数

PySpark去除数值列多余末尾0并保留四位小数

需求说明

现有PySpark DataFrame df1,其中"数值"列存在大量末尾多余0,需保留小数点后四位(含末尾必要的0),处理前后数据如下:

原始数据

名称数值
A13.89450000
B11.56300000
C25.45000000

期望结果

名称数值
A13.8945
B11.5630
C25.4500

解决方案

方法一:转换为Decimal类型

将数值列转为decimal(10,4)类型,自动保留四位小数:

from pyspark.sql import functions as F

df_result = df1.withColumn("数值", F.col("数值").cast("decimal(10,4)"))

转换后列类型为Decimal,显示时自动呈现四位小数格式。若需要字符串类型结果,可追加字符串转换:

df_result = df1.withColumn("数值", F.col("数值").cast("decimal(10,4)").cast("string"))

方法二:使用格式化字符串

通过format_string函数指定%.4f格式,强制保留四位小数,返回字符串类型结果:

from pyspark.sql import functions as F

df_result = df1.withColumn("数值", F.format_string("%.4f", F.col("数值")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:13:06