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

Pandas DataFrame数值截断至8位小数报错:DataFrame未定义__trunc__方法

解决Pandas DataFrame数值截断至8位小数的报错问题

错误原因

math.trunc() 是针对单个数值的处理函数,无法直接作用于整个Pandas DataFrame对象,这就是触发 type DataFrame doesn't define __trunc__ method 错误的核心原因。

可行解决方案

方案1:用applymap逐元素处理

applymap 可以对DataFrame内的每个元素执行指定逻辑,完美适配math.trunc的单数值处理特性:

import math
df = df.set_index("Day").applymap(lambda x: math.trunc(100000000 * x) / 100000000).reset_index()

方案2:用numpy.trunc实现向量化运算(效率更高)

numpy的trunc支持向量化操作,能直接对整个DataFrame批量处理,比逐元素遍历的效率高很多,适合大数据量场景:

import numpy as np
df = df.set_index("Day").pipe(lambda x: np.trunc(100000000 * x) / 100000000).reset_index()

注意事项

  • 确认除Day列外,其余列均为数值类型,避免非数值元素导致函数执行失败。
  • 两种方案都会保留Day列的原始格式,处理后通过reset_index()恢复原有列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:33