我正在尝试将StringIO和BytesIO与pandas混合使用,但在一些基本问题上感到困惑。例如,我无法使下面的"output"工作,而下面的"output2"确实可以正常工作。但是,"output"更接近我要做的真实世界示例。 "output2"的方法来自于一个旧的pandas示例,但不是我想要的有用方式。
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