【发布时间】:2018-09-07 10:20:03
【问题描述】:
为了将列验证为数据框的十六进制值,我正在执行以下操作:
column = data_df[column_name]
try:
column.apply(lambda x: int(x, 16))
ok = True
except ValueError:
ok = False
这里的问题似乎是lambda,因为在控制台上执行int(x, 16) 适用于任何大小的数字。
我遇到了一个异常,因为有些值太大了:
In [1]: df.col.apply(lambda x: int(x, 16))
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
...
OverflowError: Python int too large to convert to C unsigned long
性能如何处理大数据?你能想出更好的解决方案吗?
我是 python 新手,请见谅 :) 那是我的灵感来源:convert pandas dataframe column from hex string to int
【问题讨论】:
-
这篇文章中最底层的答案似乎提供了另一种解决方案stackoverflow.com/questions/9672615/…
-
您使用的是哪个版本的 Python?我用 laaarge 十六进制尝试了 int(x,16) 。有效。没问题。在 Python 3+ 中,整数没有大小限制。
-
我知道,这也适用于我。但它不使用
lambda。所以我想这应该是问题,将编辑。谢谢!