我读过一些csv文件中的大熊猫数据。数据不完整,因此包含许多nan值。 我想向将十六进制值转换为十进制值的数据添加一列。不幸的是,具有十六进制值的列全部读取为浮点数,而不是字符串,因为它们恰好具有这些值。 实施例数据Python如何将十六进制浮点数转换为十进制
val
0 20.0
1 nan
2 20.0
简单的方式转换成十六进制在python为十进制似乎是:int('20.0',16)
,其应产生32
。
但是,既然这是熊猫我不能将值转换为int,或者至少我不断收到一个错误说明。 我当前的代码是:
df['valdec'] = np.where(np.isnan(df['val']),
df['val'],
int(df['val'].astype(int).astype(str), 16))
这失败,错误:
ValueError: Cannot convert NA to integer
而不astype(int)
值为"20.0"
不能被转换。 有没有另一种方法来解释浮点值作为十六进制值,并在使用熊猫数据框时转换为十进制?
如果我的回答能够解决您的问题,那么你能接受的话,将会有我的答案左上方的空刻度,如果你需要的东西还那么你需要发表意见,并通过添加更多的信息 – EdChum