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

含NaN的整数列表转DataFrame变浮点数,如何转为整数类型?

问题:含NaN的整数列表转DataFrame如何保留整数类型?

当把纯整数列表转为DataFrame时,得到的是整数类型的结果:

lista=[1,2,3]
print(pd.DataFrame(lista))
# 输出的DataFrame为整数类型

但如果列表里包含NaN,转换后会变成浮点数类型,就算指定dtype='int64'也没用:

listb=[1,2,3,np.nan]
print(pd.DataFrame(listb))
# 输出的DataFrame为浮点数类型

请问有没有办法得到整数类型的DataFrame?


解决方法
  • 使用pandas的Nullable Integer类型(Int64)
    pandas从1.0版本开始支持带缺失值的整数类型Int64(注意首字母大写),它能兼容NaN值,同时保持整数类型。代码示例:
import pandas as pd
import numpy as np

listb=[1,2,3,np.nan]
df = pd.DataFrame(listb, dtype='Int64')
print(df)
print(df.dtypes)  # 输出 Int64
  • 替换NaN为占位整数(按需使用)
    如果业务场景允许用特定整数代替NaN,可以先替换列表中的NaN值,再指定整数类型转换。比如用0替换:
import pandas as pd
import numpy as np

listb=[1,2,3,np.nan]
# 把NaN替换为0
processed_list = [x if not np.isnan(x) else 0 for x in listb]
df = pd.DataFrame(processed_list, dtype='int64')
print(df)
print(df.dtypes)  # 输出 int64

这种方法会改变原始数据的缺失值含义,只适合允许替换的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:05:22