Fehler beim Tokenisieren von Daten C-Fehler in Python

Zeeshan Afridi 21 Juni 2023
  1. Was ist der ParserError: Fehler beim Tokenisieren von Daten. C-Fehler in Python
  2. So beheben Sie den ParserError: Fehler beim Tokenisieren von Daten. C-Fehler in Python
  3. Zeilen überspringen, um den Fehler ParserError: Error tokenizing data. C-Fehler
  4. Verwenden Sie das richtige Trennzeichen, um den Fehler ParserError: Error tokenizing data. C-Fehler
  5. Verwenden Sie dropna(), um den Fehler ParserError: Error tokenizing data. C-Fehler
  6. Verwenden Sie die Funktion fillna(), um die NaN-Werte aufzufüllen
Fehler beim Tokenisieren von Daten C-Fehler in Python

Beim Spielen mit Daten zu irgendeinem Zweck ist es zwingend erforderlich, die Daten zu bereinigen, was bedeutet, dass die Nullwerte gefüllt und ungültige Einträge entfernt werden, um die Daten zu bereinigen, damit die Ergebnisse nicht beeinträchtigt werden und das Programm reibungslos läuft.

Außerdem sind die Ursachen für den Fehler ParserError: Error tokenizing data. C-Fehler kann falsche Daten in den Dateien bereitstellen, wie gemischte Daten, eine unterschiedliche Anzahl von Spalten oder mehrere Datendateien, die als eine einzige Datei gespeichert sind.

Dieser Fehler kann auch auftreten, wenn Sie eine CSV-Datei als read_csv lesen, aber andere Trennzeichen und Zeilenabschlüsse verwenden.

Was ist der ParserError: Fehler beim Tokenisieren von Daten. C-Fehler in Python

Wie bereits erwähnt, wird der Fehler ParserError: Error tokenizing data. C-Fehler tritt auf, wenn Ihr Python-Programm CSV-Daten analysiert, aber auf Fehler wie ungültige Werte, Nullwerte, nicht gefüllte Spalten usw. stößt.

Angenommen, wir haben diese Daten in der Datei data.csv und verwenden sie zum Lesen mit Hilfe von pandas, obwohl sie einen Fehler aufweisen.

Name,Roll,Course,Marks,CGPA
Ali,1,SE,87,3
John,2,CS,78,
Maria,3,DS,13,,

Codebeispiel:

import pandas as pd

pd.read_csv("data.csv")

Ausgang:

ParserError: Error tokenizing data. C error: Expected 5 fields in line 4, saw 6

Wie Sie sehen können, hat der obige Code einen ParserError: Error tokenizing data. C-Fehler beim Lesen von Daten aus der Datei data.csv, die besagt, dass der Compiler 5 Felder in Zeile 4 erwartet hat, aber stattdessen 6 erhalten hat.

Der Fehler selbst ist selbsterklärend; Es zeigt den genauen Punkt des Fehlers an und zeigt auch den Grund für den Fehler, damit wir ihn beheben können.

So beheben Sie den ParserError: Fehler beim Tokenisieren von Daten. C-Fehler in Python

Bisher haben wir den ParserError: Error tokenizing data. C-Fehler in Python; Jetzt wollen wir sehen, wie wir es beheben können.

Es wird immer empfohlen, die Daten vor der Analyse zu bereinigen, da dies die Ergebnisse beeinträchtigen oder Ihr Programm nicht ausführen kann.

Die Datenbereinigung hilft beim Entfernen ungültiger Dateneingaben, Nullwerte und ungültiger Einträge; im Grunde ist es eine Vorverarbeitungsstufe der Datenanalyse.

In Python haben wir verschiedene Funktionen und Parameter, die helfen, die Daten zu bereinigen und Fehler zu vermeiden.

Zeilen überspringen, um den Fehler ParserError: Error tokenizing data. C-Fehler

Dies ist eine der häufigsten Techniken, die die Zeile überspringt und den Fehler verursacht; Wie Sie den obigen Daten entnehmen können, hat die letzte Zeile den Fehler verursacht.

Mit dem Argument on_bad_lines = 'skip' hat es nun die fehlerhafte Zeile ignoriert und die verbleibenden im Datenrahmen df gespeichert.

import pandas as pd

df = pd.read_csv("data.csv", on_bad_lines="skip")
df

Ausgang:

	Name	Roll	Course	Marks	CGPA
0	Ali		1		SE		87		3.0
1	John	2		CS		78		NaN

Der obige Code überspringt alle Zeilen, die Fehler verursachen, und gibt die anderen aus; Wie Sie in der Ausgabe sehen können, wird die letzte Zeile übersprungen, weil sie den Fehler verursacht hat.

Aber wir bekommen die NaN-Werte, die korrigiert werden müssen; andernfalls wirkt sich dies auf die Ergebnisse unserer statistischen Analyse aus.

Verwenden Sie das richtige Trennzeichen, um den Fehler ParserError: Error tokenizing data. C-Fehler

Die Verwendung eines ungültigen Trennzeichens kann ebenfalls den ParserError verursachen, daher ist es wichtig, abhängig von den von Ihnen bereitgestellten Daten das richtige und passende Trennzeichen zu verwenden.

Manchmal verwenden wir Tabulator, um die CSV-Daten oder Leerzeichen zu trennen, daher ist es wichtig, dieses Trennzeichen auch in Ihrem Programm anzugeben.

import pandas as pd

pd.read_csv("data.csv", sep=",", on_bad_lines="skip", lineterminator="\n")

Ausgang:

	Name	Roll	Course	Marks	CGPA\r
0	Ali		1		SE		87		3\r
1	John	2		CS		78		\r

Das Trennzeichen ist , deshalb haben wir sep=',' und den lineterminator ='\n' erwähnt, weil unsere Zeile mit \n endet.

Verwenden Sie dropna(), um den Fehler ParserError: Error tokenizing data. C-Fehler

Die Funktion dropna wird verwendet, um alle Zeilen zu löschen, die irgendwelche Null- oder NaN-Werte enthalten.

import pandas as pd

df = pd.read_csv("data.csv", on_bad_lines="skip")
print("      **** Before dropna ****")
print(df)

print("\n      **** After dropna ****")
print(df.dropna())

Ausgang:

      **** Before dropna ****
   Name  Roll Course  Marks  CGPA
0   Ali     1     SE     87   3.0
1  John     2     CS     78   NaN

      **** After dropna ****
  Name  Roll Course  Marks  CGPA
0  Ali     1     SE     87   3.0

Da wir nur zwei Zeilen haben, enthält eine Zeile alle Attribute, aber die zweite Zeile hat NaN-Werte, sodass die dropna()-Funktion die Zeile mit dem NaN-Wert überspringen und nur eine einzige Zeile anzeigen muss.

Verwenden Sie die Funktion fillna(), um die NaN-Werte aufzufüllen

Wenn Sie NaN-Werte in Ihren Daten erhalten, können Sie die Funktion fillna() verwenden, um andere Werte zu ersetzen, die den Standardwert 0 verwenden.

Codebeispiel:

import pandas as pd

print("      **** Before fillna ****")
df = pd.read_csv("data.csv", on_bad_lines="skip")
print(df, "\n\n")

print("      **** After fillna ****")
print(df.fillna(0))  # using 0 inplace of NaN

Ausgang:

      **** Before fillna ****
   Name  Roll Course  Marks  CGPA
0   Ali     1     SE     87   3.0
1  John     2     CS     78   NaN


      **** After fillna ****
   Name  Roll Course  Marks  CGPA
0   Ali     1     SE     87   3.0
1  John     2     CS     78   0.0

Das fillna() hat das NaN durch 0 ersetzt, damit wir die Daten richtig analysieren können.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python Error