【问题标题】:How to read bytes as bytes from csv?如何从csv中读取字节作为字节?
【发布时间】:2018-01-25 19:11:27
【问题描述】:

我有一个大约 10 列的 csv。其中一列包含以字节为单位的信息,即b'gAAAA234'。但是当我通过 .read_csv("file.csv") 从 pandas 读取此内容时,我将其全部保存在数据框中,并且此特定列是字符串而不是字节,即 b'gAAAA234'

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

目前,我正在处理这个:

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

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

【问题讨论】:

    标签: python csv io byte type-conversion


    【解决方案1】:

    你可以考虑用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多