如何使用pandas从CSV文件读取bytearray?

2024-06-12 00:08:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,其中有一列是bytearrays。看起来像这样:

bytearray(b'\xf3\x90\x02\xff\xff\xff\xe0?')
bytearray(b'\xf3\x90\x02\xff\xff\xff\xe0?')
bytearray(b'\xf3\x00\x00\xff\xff\xff\xe0?')

等等。我试图用pandas.read_csv()读取这个csv文件。在

^{pr2}$

msg是具有bytearray的列的名称。在

但看起来这不是一个充斥着陈词滥调的专栏。当我选择一列并尝试用print(data[1][1])打印单个元素时,我得到的输出是y,它对应于bytearray中的1位置。在

如何将此特定列作为bytearray列表导入?在


Tags: 文件csvpandasreadmsgx00x02xff
1条回答
网友
1楼 · 发布于 2024-06-12 00:08:06

您可以向pandas.read_csv()传递一个转换函数,将bytearray转换为bytearray

代码:

from ast import literal_eval

def read_byte_arrays(bytearray_string):
    if bytearray_string.startswith('bytearray(') and \
            bytearray_string.endswith(')'):
        return bytearray(literal_eval(bytearray_string[10:-1]))
    return bytearray_string

测试代码:

^{pr2}$

结果:

   data1                                  bytes  data2
0      1  [243, 144, 2, 255, 255, 255, 224, 63]      2
1      1  [243, 144, 2, 255, 255, 255, 224, 63]      2
2      1    [243, 0, 0, 255, 255, 255, 224, 63]      2

相关问题 更多 >