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

不指定列名按pandas DataFrame最后一列值筛选行及报错解决

问题原因

报错是因为当前DataFrame的最后一列是十六进制字符串格式,无法直接和整数做大小比较,需要先完成十六进制到十进制整数的转换后再执行筛选操作。

修复方案

完整实现代码如下:

import pandas as pd

# 第一步:无列名指定的前提下,将最后一列从十六进制字符串转为十进制整数
df.iloc[:, -1] = df.iloc[:, -1].apply(lambda x: int(x, 16))

# 第二步:筛选最后一列数值小于4的行
filtered_df = df[df.iloc[:, -1] < 4]

兼容异常场景

如果最后一列存在非十六进制格式的无效值,可增加异常处理避免转换报错:

def hex_to_dec(x):
    try:
        return int(x, 16)
    except:
        return pd.NA

df.iloc[:, -1] = df.iloc[:, -1].apply(hex_to_dec)
# 筛选时自动过滤转换失败的空值记录
filtered_df = df[df.iloc[:, -1].lt(4).fillna(False)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 22:42:02