如何在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
相关产品推荐
相关产品推荐

