2017-08-17 16 views
1

は、私は〜10列のCSVファイルを持っている...列の一つはバイト、すなわち、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 

これは動作しますが、私はこれを行うにはニシキヘビ/よりエレガント以上の信頼性の高い方法を見つけることを期待していたのですか?

答えて

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 
関連する問題