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

Pandas调用.tolist()转换列表时整数变为浮点数该如何解决

Pandas读取Excel整数列输出浮点数+NaN问题解决方案

问题原因

Pandas 传统 int 数据类型不支持空值(NaN),只要目标列存在空值,整列数据会自动被提升为 float64 类型,因此所有整数都会被转换为带.0后缀的浮点数。

解决方案

方案1:过滤空值后输出整数列表

不需要保留空值时,直接删除NaN后转换类型即可:

import pandas as pd

def read_xlsx():
    df = pd.read_excel('pc.xlsx')
    return df['Gtin'].dropna().astype(int).tolist()

输出结果为纯整数组成的列表,无空值。

方案2:空值替换为指定整数占位符

需要保留原位置的空值标记时,可将NaN替换为自定义的整数占位值(如0、-1等无效值标记):

import pandas as pd

def read_xlsx():
    df = pd.read_excel('pc.xlsx')
    # 可自行将fillna的参数修改为你需要的默认整数
    return df['Gtin'].fillna(0).astype(int).tolist()

方案3:保留空值同时其他值保持整数类型

如果需要保留原生NaN,同时非空值保持整数格式,可使用Pandas支持空值的Nullable Integer类型(注意类型名首字母大写为Int64):

import pandas as pd

def read_xlsx():
    # 读取时指定列类型为支持空值的整数类型
    df = pd.read_excel('pc.xlsx', dtype={'Gtin': 'Int64'})
    return df['Gtin'].tolist()

输出列表中非空值为整数类型,空值保持为NaN。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:04