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

Pandas提取列首个非空值报ufunc 'isnan'不支持输入类型如何解决

报错原因

你使用的np.isnan()仅支持数值类型输入,而目标列kst_erloes_stpfl的非空值同时包含字符串、数值两种类型,触发类型不兼容报错。

解决方法

方法1:使用Pandas内置方法(最推荐)

Pandas自带first_valid_index()方法可以直接返回第一个非空值的索引,直接取值即可:

first = df['kst_erloes_stpfl'].loc[df['kst_erloes_stpfl'].first_valid_index()]
print(first)
# 输出结果:WH042700

方法2:丢弃空值后取首位

先使用dropna()清除所有空值,再取结果的第一条数据:

first = df['kst_erloes_stpfl'].dropna().iloc[0]

方法3:修改原有代码的空值判断逻辑

将空值判断替换为支持多类型的pd.isna(),适配字符串、数值等混合类型的列:

import pandas as pd

def not_na(value):
    return ~pd.isna(value)

def first_not_na_value(array):
    return list(filter(not_na, array))[0]

first = first_not_na_value(df.kst_erloes_stpfl)
print(first)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:39:01