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

如何将DataFrame所有float64列批量转为int64以去除小数?

批量将DataFrame浮点列转为int类型

方法1:无缺失值场景下的直接转换

你的代码逻辑本身是可行的,若执行后未达预期,大概率是环境显示缓存或实际数据存在特殊情况导致。针对无缺失值的浮点列,可直接筛选类型后批量转换:

import pandas as pd

data = {'sand depth': [52.0, 22.0],
        'ground depth': [45.0, 84.0]}
df = pd.DataFrame(data)

# 筛选所有浮点类型列
float_cols = df.select_dtypes(include=['float64']).columns
# 批量转为int64类型
df[float_cols] = df[float_cols].astype('int64')

# 查看转换后的数据类型
print(df.dtypes)

执行后输出的类型信息为:

sand depth      int64
ground depth    int64
dtype: object

数据将以整数形式展示(如52而非52.0)。

方法2:含缺失值场景下的兼容转换

如果数据中存在NaN,直接用astype(int)会报错,此时可使用支持缺失值的Int64(大写I)类型:

float_cols = df.select_dtypes(include=['float64']).columns
df[float_cols] = df[float_cols].astype('Int64')

转换后缺失值会显示为<NA>,有效数据保持整数格式。

方法3:仅优化显示(不修改数据类型)

若无需改变数据类型,只是不想显示小数,可设置pandas的显示格式:

pd.options.display.float_format = '{:.0f}'.format

此设置会让所有浮点列以整数形式展示,但数据类型仍为float64,适合仅优化展示的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:31