Ich würde gerne eine csv-Datei in Stücke mit pd.read_csv (Pfad, Chunksize = N) bis zum Ende in einer ziemlich eleganten und effizienten Art und Weise öffnen. Das Problem ist, dass, sobald der Zeiger aus der Datei die folgende Meldung von Fehlern ist erfolgt:handling Ausnahme beim Lesen von Daten mit pandas.read_csv()
df.get_chunk()
Traceback (most recent call last):
File "<ipython-input-115-061ea8dbcbad>", line 1, in <module>
df.get_chunk()
File "C:\Users\fedel\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 784, in get_chunk
return self.read(nrows=size)
File "C:\Users\fedel\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 763, in read
ret = self._engine.read(nrows)
File "C:\Users\fedel\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 1213, in read
data = self._reader.read(nrows)
File "pandas\parser.pyx", line 766, in pandas.parser.TextReader.read (pandas\parser.c:7988)
File "pandas\parser.pyx", line 813, in pandas.parser.TextReader._read_low_memory (pandas\parser.c:8629)
StopIteration
und der Code kann nicht mehr weiter!
Ich glaube, dass eine try/except-Anweisung mich diese Nachricht vermeiden wird, daher wird der Code mit den nächsten Ausgaben weitergehen. Sagen, dass ich einen Python-Datenrahmen wie, dass man habe Sie mit den folgenden Codezeilen
path = r"C:\Users\fedel\Desktop" + '\\fileName.csv'
pd.DataFrame(np.random.randn(30, 3), columns = list('abc')).to_csv(path, index = False)
df = pd.read_csv(path, chunksize = 6)
Ich denke, dass eine Aussage wie die folgenden ein, dass Fehler vermeiden könnte und lassen Sie den Code mit den nächsten Ausgaben weiter generieren
while True:
try:
df.get_chunk()
except TypeOfError:
funcyfunction()
könnten Sie bitte diese letzte Ausnahme beheben, die Codezeilen behandelt?
Versuchen: 'df = pd.read_csv (path, chunksize = 6, error_bad_lines = False) 'um die Fehler verursachenden Zeilen zu überspringen. –
Nein, ich kann nicht! Es liefert mir immer noch eine Fehlermeldung –
Könnten Sie den vollständigen Traceback-Fehler buchen? –