2017-08-17 73 views
1

我有一個csv〜10列..其中一列有字節的信息,即b'gAAAA234'。但是當我通過.read_csv("file.csv")從熊貓讀取這個數據時,我把它全部放在一個數據幀中,而這個特定的列是字符串而不是字節,即b'gAAAA234'如何從csv讀取字節爲字節?

我該如何簡單地將它讀作字節,而不必將它作爲字符串讀取然後再重新轉換?

目前,我與這方面的工作:

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

這工作,但我希望能找到一個更優雅/ Python的或更可靠的方式來做到這一點?

回答

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