[英]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.