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

如何在Pandas中跳过NaN值将hexValues列转为十进制?

Pandas十六进制转十进制并跳过NaN的解决方案

直接给两种实用处理方案:

方法1:自定义转换函数结合try-except

如果需要灵活控制错误处理逻辑,比如自定义异常返回值,可以写个小函数配合apply使用:

import pandas as pd
import numpy as np

def hex_to_dec(hex_val):
    try:
        # 先转字符串,避免非字符串类型的转换问题
        return int(str(hex_val), 16)
    # 捕获转换失败的异常:比如NaN转字符串是"nan",无法解析为十六进制;或其他无效格式
    except (ValueError, TypeError):
        # 可返回原NaN,也可以自定义值,这里返回np.nan保持统一格式
        return np.nan

data["decValues"] = data["hexValues"].apply(hex_to_dec)

方法2:用Pandas内置pd.to_numeric(更高效)

Pandas自带的to_numeric支持直接解析十六进制,且是向量化操作,效率比逐行apply高很多:

import pandas as pd

# base=16指定按十六进制解析,errors="ignore"保留无法转换的原值(比如NaN)
data["decValues"] = pd.to_numeric(data["hexValues"], base=16, errors="ignore")

如果希望把所有无法转换的值统一替换为NaN,只需把errors="ignore"改成errors="coerce"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:17:56