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

Python Pandas如何删除float类型ID列的小数点且不改变原值

Pandas Float类型ID列删除小数点保留完整数字解决方案

问题场景

使用Python Pandas处理数据时,数据框内有一列float类型的ID字段,原始数据示例如下:

ID
93.18767
93.87657
94.87246
95.87323

需求为删除ID值中的小数点,所有数字完全保留不修改,期望输出结果如下:

ID
9318767
9387657
9487246
9587323

原有实现的问题

最初的实现逻辑为将ID列转为字符串类型后直接替换小数点,自定义函数代码如下:

def substitute (df,column,before,after):
    df[column]=df[column].astype(str)
    df[column]=df[column].str.replace(before,after)
    return 'Done'   

运行后出现不符合预期的异常值,输出示例:

ID
931876599999994
938764388899999994
948724388555599999
9587322999994300000002

该问题的根源是float类型的底层存储机制,直接转字符串时会出现精度偏差。

最终可行方案

先确定ID列的固定小数位数,对值做格式化处理后再执行替换操作即可,代码示例:

# 可根据ID列实际小数位数调整format的参数,示例中ID为5位小数
df['ID'] = df['ID'].apply(lambda x: '{0:.5f}'.format(x))
# 调用自定义替换函数删除小数点
substitute(df, 'ID', '.', '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:18:03