熊猫十六进制文本转换
问题描述:
我试图转换包含十六进制值转换为文本熊猫十六进制文本转换
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))
但答案并不如变换工具。
感谢任何帮助!
答
根据提供的示例,您需要将十六进制分组为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)
噢,谢谢!这工作完美:) – Kvothe