无需指定列名将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
相关产品推荐
相关产品推荐

