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

Python fillna填充CSV空单元格时,如何避免原有整数转为浮点型?

解决CSV空值填充0后整数变浮点数的问题
  • 填充后转换数据类型
    先填充数值0(不是字符串"0"),再将目标列转为整数类型:
import pandas as pd

df = pd.read_csv("your_file.csv")
# 填充所有空值为0
df.fillna(0, inplace=True)
# 单列转换为整数
df["target_column"] = df["target_column"].astype(int)
# 全表转换为整数(确保所有列都是整数型数据)
df = df.astype(int)

如果数据中存在非整数的数值,转int会报错,这时可以用astype('Int64')(大写I),这是pandas支持的可空整数类型,兼容空值场景(不过填充后已经没有空值了,两种方式都可行)。

  • 读取CSV时指定数据类型
    读取文件阶段就指定列的整数类型,再填充0,避免类型自动转为浮点数:
# 指定单个列的类型
df = pd.read_csv("your_file.csv", dtype={"target_column": int})
df.fillna(0, inplace=True)

# 全表用可空整数类型读取
df = pd.read_csv("your_file.csv", dtype='Int64')
df.fillna(0, inplace=True)
  • 用replace替换空值
    也可以通过replace替换空值为0后转类型,效果和fillna一致:
df.replace(pd.NA, 0, inplace=True)
df["target_column"] = df["target_column"].astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:37:07