将字节的CSV字符串转换为熊猫数据帧

时间:2020-02-26 11:35:12

标签: python pandas parsing

我要输入一个csv字符串,并且需要将其解析为pd数据帧。字符串示例:

b'date,"total revenue"\n2018-06-19,12.65\n2018-06-20,3.90\n2018-06-21,6.16\n2018-06-22,9.06\n2018-06-23,1.30\n2018-06-24,1.88\n2018-06-25,4.20\n2018-06-26,2.46\n2018-06-27,2.38\n2018-06-28,1.06\n`

如何将此字符串转换为2列熊猫数据框?非常感谢

我尝试了以下操作:

df = pd.DataFrame(list(reader(str(my_string))))

但是输出都歪斜了:

                   0     1
0                  b  None
1                  '  None
2                  d  None
3                  a  None
4                  t  None
5                  e  None
6                         
7      total revenue  None
8                  \  None

3 个答案:

答案 0 :(得分:1)

import sys
import pandas as pd

if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO


temp =  StringIO(my_string)
df =pd.read_csv(temp, sep=",", lineterminator='\n')

df

您想尝试一下,别忘了删除b,因为它将df的行作为二进制

答案 1 :(得分:0)

我在这里(How to convert bytes data into a python pandas dataframe?)找到了答案:

from io import StringIO

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

data = StringIO(s) 

df=pd.read_csv(data)

答案 2 :(得分:0)

如果二进制数据是 csv 文件,我使用这种方式。

with open("test.csv", 'wb') as f:  
    f.write(bytes_data)
df = pd.read_csv('test.csv')