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

如何在不使用Pandas的情况下将列表数字转数值、'nan'转np.nan

嘿,这事儿好办!不用Pandas,用基础Python加numpy就能轻松搞定。我给你两种实用的方案,你按需选就行:

方法1:逐元素遍历处理(新手友好,逻辑清晰)

先导入numpy,然后逐个处理列表里的元素,逻辑一目了然:

import numpy as np

original_list = ["1","2","nan","4","5"]
processed_list = []

for item in original_list:
    # 兼容大小写的"nan",比如"NaN"或者"NAN"也能识别
    if item.lower() == "nan":
        processed_list.append(np.nan)
    else:
        # 优先转整数,保留更精准的类型;转失败再转浮点数
        try:
            processed_list.append(int(item))
        except ValueError:
            processed_list.append(float(item))

print(processed_list)
# 输出结果: [1, 2, nan, 4, 5]
方法2:列表推导式+辅助函数(代码更紧凑)

如果喜欢简洁的写法,可以把转换逻辑封装成一个小函数,再用列表推导式批量处理:

import numpy as np

original_list = ["1","2","nan","4","5"]

def convert_element(item):
    if item.lower() == "nan":
        return np.nan
    try:
        return int(item)
    except ValueError:
        return float(item)

processed_list = [convert_element(item) for item in original_list]

print(processed_list)
# 输出结果和上面完全一致: [1, 2, nan, 4, 5]

补充说明

这两种方案都完全不依赖Pandas,只用到了Python内置的异常处理和numpy的np.nan。如果你的场景里还会遇到其他特殊字符串(比如"inf"),只需要在辅助函数里加对应的判断分支就行,扩展性很强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:32:49