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

如何在Pandas中仅截断末尾为.0的小数数值?

解决Pandas中仅截断小数部分为.0的数值问题

当然可以用类似apply+lambda的方式实现需求,这里提供两种直接的方案:

方案1:通过数值判断转换类型

利用数值本身的特性,判断小数部分是否为0,是则转为整数,否则保留原浮点数:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'client_id': [123, 123, 123],
    'title': ['Baker', 'Chef', 'Farmer'],
    'position_code': [15.1, 16.0, 17.2]
})

# 处理position_code列
df['position_code'] = df['position_code'].apply(lambda x: int(x) if x == int(x) else x)
print(df)

执行后输出结果:

client_id    title  position_code
0        123    Baker           15.1
1        123     Chef             16
2        123   Farmer           17.2

方案2:利用字符串格式化自动省略无意义小数

使用Python的格式化符g,它会自动去掉末尾的.0和无意义的零,同时保留需要的小数部分:

df['position_code'] = df['position_code'].apply(lambda x: format(x, 'g'))

这种方式会将列转为字符串类型,但显示效果完全符合需求:

client_id    title position_code
0        123    Baker          15.1
1        123     Chef            16
2        123   Farmer          17.2

两种方案都匹配你之前使用apply+lambda的习惯,可根据实际需求选择(需要保持数值类型选方案1,仅需显示效果选方案2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:43:28