将一串数字转换为十六进制并返回到十进制 pandas python

Converting a string of numbers to hex and back to dec pandas python

我目前有一串值,是在从 csv 文件中过滤数据后检索到的。最终我不得不对数据进行一些过滤,但我有与列表、数据框或数组相同的数字。我只需要获取字符串中的数字并将它们转换为十六进制,然后获取十六进制的前 8 个数字并将其转换为字符串中每个元素的 dec。最后,我还需要转换同一十六进制的最后 8 个,然后对字符串中的每个值也进行 dec 转换。

我无法提供片段,因为它是敏感数据,但这里有一个例子。

我基本上是这样的

>>> list_A

[52894036, 78893201, 45790373]

如果我将它转换为数据帧并调用 df.dtypes,它会显示 dtype: object,我可以将 A 列的值转换为 bool、int 或 string,但数据类型始终是目的。

不管是函数,还是简单的循环。我一直在尝试很多方法,但无法获得我需要的结果。但最终数据取自不同的 csv 文件,永远不会是相同的值或列表大小。

Pandas 主要设计用于整数和浮点数,没有我所知道的十六进制的特殊功能,但您可以使用 apply 访问标准 python 转换函数像 hexint:

df=pd.DataFrame({ 'a':[52894036999, 78893201999, 45790373999] })
df['b'] = df['a'].apply( hex )
df['c'] = df['b'].apply( int, base=0 )

结果:

             a             b            c
0  52894036999   0xc50baf407  52894036999
1  78893201999  0x125e66ba4f  78893201999
2  45790373999   0xaa951a86f  45790373999

请注意,此答案适用于 Python 3。对于 Python 2,您可能需要使用 [=15= 删除 "b" 列中尾随的 "L" ].