Pandas十六进制到文本转换

时间:2017-08-04 08:37:21

标签: python pandas hex

我正在尝试将包含十六进制值的数据帧转换为文本

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行的数据帧,所以我想知道是否可以使用Pandas来完成。

我试过了:

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

但答案不是根据转换工具。

感谢任何帮助!

1 个答案:

答案 0 :(得分: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)