如何从csv读取字节作为字节?

时间:2017-08-17 11:29:42

标签: python csv io byte type-conversion

我有一个包含~10列的csv ..其中一列有字节信息,即b'gAAAA234'。但是当我从pandas通过.read_csv("file.csv")读取这个内容时,我在数据帧中得到了所有内容,而这个特定的列是字符串而不是字节,即b'gAAAA234'

如何将其作为字节读取而不必将其作为字符串读取然后重新转换?

目前,我正在处理这个问题:

    b = df['column_with_data_in_bytes'][i]
    bb = bytes(b[2:len(b)-1],'utf-8')
    #further processing of bytes

这有效,但我希望找到更优雅/ pythonic或更可靠的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以考虑使用ast.literal_eval进行解析:

import ast
df['column_with_data_in_bytes'] = df['column_with_data_in_bytes'].apply(ast.literal_eval)

演示:

In [322]: df = pd.DataFrame({'Col' : ["b'asdfghj'", "b'ssdgdfgfv'", "b'asdsfg'"]})

In [325]: df
Out[325]: 
            Col
0    b'asdfghj'
1  b'ssdgdfgfv'
2     b'asdsfg'

In [326]: df.Col.apply(ast.literal_eval)
Out[326]: 
0      asdfghj
1    ssdgdfgfv
2       asdsfg
Name: Col, dtype: object
相关问题