如何将字节数据转换为python pandas数据框?

use*_*934 4 python-3.x pandas

我想将“字节”数据转换为Pandas数据框。

数据如下所示(前几行):

    (b'#Settlement Date,Settlement Period,CCGT,OIL,COAL,NUCLEAR,WIND,PS,NPSHYD,OCGT'
 b',OTHER,INTFR,INTIRL,INTNED,INTEW,BIOMASS\n2017-01-01,1,7727,0,3815,7404,3'
 b'923,0,944,0,2123,948,296,856,238,\n2017-01-01,2,8338,0,3815,7403,3658,16,'
 b'909,0,2124,998,298,874,288,\n2017-01-01,3,7927,0,3801,7408,3925,0,864,0,2'
 b'122,998,298,816,286,\n2017-01-01,4,6996,0,3803,7407,4393,0,863,0,2122,998'
Run Code Online (Sandbox Code Playgroud)

列标题显示在顶部。接下来的每一行都是一个时间戳和数字。

有没有简单的方法可以做到这一点?

非常感谢你

@Paula Livingstone:

这似乎可行:

s=str(bytes_data,'utf-8')

file = open("data.txt","w") 

file.write(s)
df=pd.read_csv('data.txt')
Run Code Online (Sandbox Code Playgroud)

也许可以在不使用文件的情况下完成此操作。

小智 14

我遇到了同样的问题,并从这里的答案中找到了这个库https://docs.python.org/2/library/stringio.html:如何从字符串创建Pandas DataFrame

尝试类似:

from io import StringIO

s=str(bytes_data,'utf-8')

data = StringIO(s) 

df=pd.read_csv(data)
Run Code Online (Sandbox Code Playgroud)


Ken*_*HBS 14

也可以BytesIO直接使用:

from io import BytesIO

df = pd.read_csv(BytesIO(bytes_data))
Run Code Online (Sandbox Code Playgroud)

这将为您节省转换bytes_data为字符串的步骤