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

如何在Pandas DataFrame中移除所有数据小数点后的内容

解决方案:将DataFrame中的Decimal类型值转换为整数

你的DataFrame中存储的是Decimal对象(不是字符串),所以字符串分割(split)这类方法不适用,需要针对Decimal类型做直接转换,以下是可行方案:

步骤1:明确转换逻辑

Decimal类型的Decimal('23.00000')本身是精确的十进制数值,直接转换为整数即可自动去掉末尾的零,无需额外处理字符串格式。

步骤2:代码实现

先导入依赖库并构建原始DataFrame:

from decimal import Decimal
import pandas as pd

# 构建原始数据
data = {'BTC': {'High': Decimal('23.00000')},
        'ETH': {'High': Decimal('56.00000')}}
df = pd.DataFrame(data)

使用applymap()遍历每个元素完成转换:

# 把每个Decimal对象转为整数
df = df.applymap(lambda x: int(x))

执行后得到的结果就是目标格式:

BTC  ETH
High        23   56

补充说明

  • 如果你的Decimal值存在非整数情况(比如Decimal('23.12300')),可以根据需求选择:
    • 转成浮点型后取整:lambda x: int(float(x))
    • 保留Decimal类型的整数形式:lambda x: x.to_integral_value()
  • 之前使用apply未生效,是因为apply默认按列/行处理,而applymap是逐个元素处理,更适合这种全元素类型转换的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:40:24