我要输入一个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
答案 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')