将一串数字转换为十六进制并返回到十进制 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 转换函数像 hex
和 int
:
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" ].
我目前有一串值,是在从 csv 文件中过滤数据后检索到的。最终我不得不对数据进行一些过滤,但我有与列表、数据框或数组相同的数字。我只需要获取字符串中的数字并将它们转换为十六进制,然后获取十六进制的前 8 个数字并将其转换为字符串中每个元素的 dec。最后,我还需要转换同一十六进制的最后 8 个,然后对字符串中的每个值也进行 dec 转换。
我无法提供片段,因为它是敏感数据,但这里有一个例子。
我基本上是这样的
>>> list_A
[52894036, 78893201, 45790373]
如果我将它转换为数据帧并调用 df.dtypes
,它会显示 dtype: object
,我可以将 A 列的值转换为 bool、int 或 string,但数据类型始终是目的。
不管是函数,还是简单的循环。我一直在尝试很多方法,但无法获得我需要的结果。但最终数据取自不同的 csv 文件,永远不会是相同的值或列表大小。
Pandas 主要设计用于整数和浮点数,没有我所知道的十六进制的特殊功能,但您可以使用 apply
访问标准 python 转换函数像 hex
和 int
:
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" ].