我有一个包含~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或更可靠的方法来做到这一点?
答案 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