【发布时间】:2017-04-21 13:07:07
【问题描述】:
我已经从带有 pandas 的 csv 文件中读取了一些数据。数据不完整,因此包含许多 nan 值。 我想在将十六进制值转换为十进制值的数据中添加一列。不幸的是,具有十六进制值的列都被读取为浮点数,而不是字符串,因为它们恰好具有这些值。 示例数据
val
0 20.0
1 nan
2 20.0
在python中将十六进制转换为十进制的简单方法似乎是:int('20.0',16),它应该产生32。
但是,由于这是 pandas,我无法将值转换为 int,或者至少我不断收到错误说明。 我当前的代码是:
df['valdec'] = np.where(np.isnan(df['val']),
df['val'],
int(df['val'].astype(int).astype(str), 16))
这失败并出现错误:
ValueError: 无法将 NA 转换为整数
如果没有astype(int),则值为"20.0",无法转换。
使用 pandas 数据帧时,是否有另一种方法可以将浮点值解释为十六进制值并转换为十进制?
【问题讨论】:
-
如果我的回答解决了您的问题,那么您可以接受,我的回答左上角会有一个空的勾号,如果您需要进一步的内容,那么您需要评论并添加更多信息