I have this pandas datafreme
JavaScript
x
8
1
data1_txt = """
2
Name
3
0x41
4
0x4a
5
0x47
6
"""
7
df = pd.read_fwf(io.StringIO(data1_txt))
8
As you can see it’s in Hex and I need to convert it to ASCII character. Hence, I need it to look like this
JavaScript
1
8
1
data1_txt = """
2
Name
3
A
4
J
5
G
6
"""
7
df = pd.read_fwf(io.StringIO(data1_txt))
8
I can do this in plain python, but I can’t do it in Pandas. Aný help is very much appreciated
Advertisement
Answer
Use lambda function or lsit comprehension:
JavaScript
1
10
10
1
df['Name'] = df['Name'].map(lambda x: chr(int(x, 16)))
2
#alternatives
3
df['Name'] = df['Name'].apply(lambda x: chr(int(x, 16)))
4
df['Name'] = [chr(int(x, 16)) for x in df['Name']]
5
print (df)
6
Name
7
0 A
8
1 J
9
2 G
10
Another idea:
JavaScript
1
2
1
df['Name'] = df['Name'].map(lambda x: bytes.fromhex(x[2:]).decode('utf-8'))
2