我正在尝试将包含十六进制值的数据帧转换为文本
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))
但答案不是根据转换工具。
感谢任何帮助!
答案 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)