Ich hatte dieses Problem auch, aber vielleicht aus einem anderen Grund. In meiner CSV-Datei hatte ich einige abschließende Kommas, die eine zusätzliche Spalte hinzufügten, die von Pandas gelesen werden sollte. Verwenden des Folgenden funktioniert, aber es ignoriert einfach die fehlerhaften Zeilen:
data = pd.read_csv('file1.csv', error_bad_lines=False)
Wenn Sie die Zeilen behalten möchten, gibt es eine Art hässlichen Hack zur Fehlerbehandlung, wie beispielsweise folgendes:
line = []
expected = []
saw = []
cont = True
while cont == True:
try:
data = pd.read_csv('file1.csv',skiprows=line)
cont = False
except Exception as e:
errortype = e.message.split('.')[0].strip()
if errortype == 'Error tokenizing data':
cerror = e.message.split(':')[1].strip().replace(',','')
nums = [n for n in cerror.split(' ') if str.isdigit(n)]
expected.append(int(nums[0]))
saw.append(int(nums[2]))
line.append(int(nums[1])-1)
else:
cerror = 'Unknown'
print 'Unknown Error - 222'
if line != []:
# Behandeln Sie die Fehler, wie Sie möchten
Ich habe dann ein Skript geschrieben, um die Zeilen wieder in das DataFrame einzufügen, da die fehlerhaften Zeilen durch die Variable 'line' im obigen Code angezeigt werden. Dies kann alles vermieden werden, indem einfach der CSV-Reader verwendet wird. Hoffentlich können die Entwickler von Pandas es in Zukunft einfacher machen, mit dieser Situation umzugehen.