2017-08-04 95 views
1

我试图转换包含十六进制值转换为文本熊猫十六进制文本转换

foo_hex bar_hex baz_hex qux_hex foo_text bar_text baz_text qux_text 
30  2D3436 2D3630 3438 

使用在线转换器中的数据框:http://www.unit-conversion.info/texttools/hexadecimal/

foo_hex bar_hex baz_hex qux_hex foo_text bar_text baz_text qux_text 
30  2D3436 2D3630 3438 0  -46  -60  48 

我行000的的数据帧,所以我想知道这是否可以使用熊猫来完成。

我曾尝试:

df1['foo_text'] = df1['foo_hex'].apply(lambda x: int(x, base=16)) 

但答案并不如变换工具。

感谢任何帮助!

回答

1

根据提供的示例,您需要将十六进制分组为2,然后分别为每个组取十进制值,然后将它们转换回char(将它们转换为文本)。示例 -

def func(a): 
    b = [iter(a)] * 2 
    result = '' 
    for char1,char2 in zip(*b): 
     result = result + chr(int(char1+char2,base=16)) 
    return result 

df1['foo_text'] = df1['foo_hex'].apply(func) 
+0

噢,谢谢!这工作完美:) – Kvothe

相关问题