You need to enable JavaScript to run this app. Pandas将十六进制列转为int触发TypeError的解决方案咨询
优惠活动
大模型
产品
解决方案
定价
更多

Pandas将十六进制列转为int触发TypeError的解决方案咨询

pandas十六进制列转十进制报错解决方案

方案1:读取CSV时直接指定列类型(优先推荐)

读取文件阶段就通过dtype参数强制指定十六进制列为字符串类型,从源头避免pandas自动推断类型出错:

import pandas as pd

# 声明需要处理的十六进制列
hex_columns = ["data1", "data2", "data3", "data4"]
# 读取CSV时指定对应列为字符串类型
df = pd.read_csv("你的文件路径.csv", dtype={col: str for col in hex_columns})

# 批量转换为十进制整数
for col in hex_columns:
    df[col] = df[col].apply(lambda x: int(x, 16))

方案2:已加载DataFrame后的兼容转换

如果数据已经读入内存,无需重新读取文件,先统一将列值转为字符串再做转换即可:

hex_columns = ["data1", "data2", "data3", "data4"]

for col in hex_columns:
    # 先统一转字符串,再执行十六进制转十进制,兼容整数、带空格等异常情况
    df[col] = df[col].apply(lambda x: int(str(x).strip(), 16))

如果你的十六进制值可能带0x前缀,可以调整转换逻辑适配:
lambda x: int(str(x).strip().lower().replace("0x", ""), 16)

报错的核心原因是int()指定base参数时仅支持字符串输入,只要先把所有列值统一转为字符串格式就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:45:05