[英]StringIO and pandas read_csv
我正在尝试将StringIO和BytesIO与pandas混合在一起,并努力解决一些基本问题。 例如,我不能让下面的“输出”工作,而下面的“output2”确实有效。 但是“输出”更接近我正在尝试的现实世界的例子。 “output2”中的方式来自一个老熊猫的例子,但对我来说并不是一个真正有用的方法。
import io # note for python 3 only
# in python2 need to import StringIO
output = io.StringIO()
output.write('x,y\n')
output.write('1,2\n')
output2 = io.StringIO("""x,y
1,2
""")
它们的类型和内容似乎相同:
type(output) == type(output2)
Out[159]: True
output.getvalue() == output2.getvalue()
Out[160]: True
但不,不一样:
output == output2
Out[161]: False
更多我要解决的问题:
pd.read_csv(output) # ValueError: No columns to parse from file
pd.read_csv(output2) # works fine, same as reading from a file
io.StringIO
这里的行为就像一个文件 - 你写信给它,现在文件指针指向结尾。 当你尝试从那里读取之后,在你写完之后没有任何内容,所以:没有要解析的列。
相反,就像你使用普通文件一样, seek
开始,然后阅读:
>>> output = io.StringIO()
>>> output.write('x,y\n')
4
>>> output.write('1,2\n')
4
>>> output.seek(0)
0
>>> pd.read_csv(output)
x y
0 1 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.