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

无需指定列名将DataFrame最后一列十六进制转换为十进制的方法

解决方案

核心逻辑是通过列的索引位置定位最后一列,无需硬编码列名即可完成转换,基于Pandas的实现代码如下:

最简实现

# 获取最后一列的列名
last_col = df.columns[-1]
# 批量将十六进制转为十进制
df[last_col] = df[last_col].apply(lambda x: int(x, 16))

完整可运行示例

和你提供的示例输入完全对齐:

import pandas as pd

# 构造示例输入
df = pd.DataFrame({
    "Name": ["Ron", "Jos", "Pam"],
    "Class": ["G3", "G2", "G5"],
    "Color": ["Pink", "Green", "Blue"],
    "Count": ["0002", "000A", "000F"]
})

# 执行转换
last_col = df.columns[-1]
df[last_col] = df[last_col].apply(lambda x: int(x, 16))

print(df)

运行后输出和你预期的结果完全一致。

兼容异常场景(可选)

如果最后一列存在不合法的十六进制字符串,可以增加异常判断避免运行报错:

def hex_to_dec(val):
    try:
        return int(val, 16)
    except (ValueError, TypeError):
        # 不合法值原样返回
        return val

last_col = df.columns[-1]
df[last_col] = df[last_col].apply(hex_to_dec)

内容的提问来源于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 19:33:01