StringIO und pandas read_csv
Ich versuche zu mischen, StringIO und BytesIO mit pandas und kämpfen mit ein paar grundlegenden Sachen. Zum Beispiel, ich kann nicht "Ausgang" unten zu arbeiten, in der Erwägung, dass "output2" weiter unten funktioniert. Aber "Ausgang" ist näher an der realen Welt-Beispiel, das ich versuche zu tun. Der Weg in "output2" ist aus einem alten pandas Beispiel aber nicht wirklich eine nützliche Möglichkeit für mich, es zu tun.
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
""")
Sie scheinen die gleichen zu sein in Bezug auf Art und Inhalt:
type(output) == type(output2)
Out[159]: True
output.getvalue() == output2.getvalue()
Out[160]: True
Aber Nein, nicht das gleiche:
output == output2
Out[161]: False
Mehr zu dem Punkt, das problem, das ich zu lösen versuche:
pd.read_csv(output) # ValueError: No columns to parse from file
pd.read_csv(output2) # works fine, same as reading from a file
Du musst angemeldet sein, um einen Kommentar abzugeben.
io.StringIO
hier verhält sich genau wie ein Datei-Sie schrieb es, und jetzt wird der Dateizeiger zeigt auf das Ende. Wenn Sie versuchen, Lesen Sie es nach, dass, es gibt nichts nach dem Punkt, den Sie geschrieben haben, also: keine Spalten zu analysieren.Statt, genau wie bei einem gewöhnlichen Datei
seek
an den start, und Lesen Sie dann: