Pandas 中的十六进制转 ASCII 字符串
Hexadecimal to ASCII string in Pandas
我有这个 pandas datafreme
data1_txt = """
Name
0x41
0x4a
0x47
"""
df = pd.read_fwf(io.StringIO(data1_txt))
如您所见,它是十六进制的,我需要将其转换为 ASCII 字符。因此,我需要它看起来像这样
data1_txt = """
Name
A
J
G
"""
df = pd.read_fwf(io.StringIO(data1_txt))
我可以在普通 python 中做到这一点,但我不能在 Pandas 中做到这一点。非常感谢您的帮助
使用 lambda 函数或 lsit 理解:
df['Name'] = df['Name'].map(lambda x: chr(int(x, 16)))
#alternatives
df['Name'] = df['Name'].apply(lambda x: chr(int(x, 16)))
df['Name'] = [chr(int(x, 16)) for x in df['Name']]
print (df)
Name
0 A
1 J
2 G
另一个想法:
df['Name'] = df['Name'].map(lambda x: bytes.fromhex(x[2:]).decode('utf-8'))
我有这个 pandas datafreme
data1_txt = """
Name
0x41
0x4a
0x47
"""
df = pd.read_fwf(io.StringIO(data1_txt))
如您所见,它是十六进制的,我需要将其转换为 ASCII 字符。因此,我需要它看起来像这样
data1_txt = """
Name
A
J
G
"""
df = pd.read_fwf(io.StringIO(data1_txt))
我可以在普通 python 中做到这一点,但我不能在 Pandas 中做到这一点。非常感谢您的帮助
使用 lambda 函数或 lsit 理解:
df['Name'] = df['Name'].map(lambda x: chr(int(x, 16)))
#alternatives
df['Name'] = df['Name'].apply(lambda x: chr(int(x, 16)))
df['Name'] = [chr(int(x, 16)) for x in df['Name']]
print (df)
Name
0 A
1 J
2 G
另一个想法:
df['Name'] = df['Name'].map(lambda x: bytes.fromhex(x[2:]).decode('utf-8'))