我目前有一串值,我在过滤csv文件中的数据后检索到这些值。最终我不得不对数据进行一些过滤,但是我有与列表,数据帧或数组相同的数字。我只需要取字符串中的数字并将它们转换为十六进制,然后取十六进制的前8个数字,并将其转换为字符串中每个元素的dec。最后,我还需要转换相同十六进制的最后8个,然后转换为dec以及字符串中的每个值。
我无法提供代码段,因为它是敏感数据,但这是一个示例。
我基本上有这样的东西
>>> list_A
[52894036, 78893201, 45790373]
如果我将其转换为数据帧并调用df.dtypes
,它会显示dtype: object
并且我可以将列A的值转换为bool,int或string,但dtype始终是一个对象。
无论是函数还是简单循环都无关紧要。我一直在尝试很多方法而无法达到我需要的结果。但最终数据来自不同的csv文件,并且永远不会是相同的值或列表大小。
答案 0 :(得分:2)
Pandas主要用于整数和浮点数,没有我所知道的十六进制特殊功能,但您可以使用apply
来访问标准的python转换函数,如hex
和{{1 }}:
int
结果:
df=pd.DataFrame({ 'a':[52894036999, 78893201999, 45790373999] })
df['b'] = df['a'].apply( hex )
df['c'] = df['b'].apply( int, base=0 )
请注意,这个答案适用于Python 3.对于Python 2,您可能需要去掉尾随的" L"在栏目" b"与 a b c
0 52894036999 0xc50baf407 52894036999
1 78893201999 0x125e66ba4f 78893201999
2 45790373999 0xaa951a86f 45790373999
。