Python 编写一个可以在数据帧内从十六进制格式转换为ascii格式的函数

Python 编写一个可以在数据帧内从十六进制格式转换为ascii格式的函数,python,pandas,Python,Pandas,我正在尝试编写一个函数,该函数可以将数据帧(df)和列(col)作为输入,并在列中从编码的十六进制转换为ascii 我已经尝试了“7061756c”。解码(“hex”),但我不确定我是否可以申请col列中的全部记录,下面是我尝试的代码 def hex_to_ascii(df , col): for i in range(0,len(df['col'].values)): string = bytearray.fromhex(df['col'].values[i]).dec

我正在尝试编写一个函数,该函数可以将数据帧(df)和列(col)作为输入,并在列中从编码的十六进制转换为ascii

我已经尝试了
“7061756c”。解码(“hex”)
,但我不确定我是否可以申请col列中的全部记录,下面是我尝试的代码

def hex_to_ascii(df , col):
    for i in range(0,len(df['col'].values)):
        string = bytearray.fromhex(df['col'].values[i]).decode()

我被困在这里了,有人能帮我一下吗?如果我正确理解您的数据帧,您似乎只需要在修改后的函数版本中使用
df.apply()

def hex_to_ascii(s):
    try:
        return bytearray.fromhex(s).decode()
    except ValueError:
        return None      # or s, or some other error handling

df['col'] = ['7061756c', '6a6f686e', '72696e676f', '67656f726765', '737475', '796f6b6f']
print(df['col'].apply(hex_to_ascii))

0      paul
1      john
2     ringo
3    george
4       stu
5      yoko
Name: col, dtype: object

如果我正确理解了您的数据帧,您似乎只需要在修改后的函数版本中使用
df.apply()

def hex_to_ascii(s):
    try:
        return bytearray.fromhex(s).decode()
    except ValueError:
        return None      # or s, or some other error handling

df['col'] = ['7061756c', '6a6f686e', '72696e676f', '67656f726765', '737475', '796f6b6f']
print(df['col'].apply(hex_to_ascii))

0      paul
1      john
2     ringo
3    george
4       stu
5      yoko
Name: col, dtype: object

你能展示一些你的数据样本吗?出于隐私,我不能不为你提供一个特定列的每条记录只有十六进制格式。你能展示一些你的数据样本吗?出于隐私,我不能不为你提供一个特定列的每条记录只有十六进制格式错误>>值错误:非十六进制在fromhex()arg中的位置1处找到数字,请您帮助我们理解这意味着您的列中包含一些非十六进制值。您可以添加
尝试。。。除了
到您的
十六进制到ascii
函数来处理这些。抛出下面的错误>>值错误:在fromhex()arg的位置1处找到非十六进制数,您能帮助我们理解这意味着您的列中有一些非十六进制值。您可以添加
尝试。。。除了
到你的
hex\u到ascii
函数来处理这些。尼斯-我喜欢
str.decode
内置的良好和彻底的使用。尼斯-我喜欢
str.decode
内置的良好和彻底的使用。