Error al tokenizar datos C Error en Python

Zeeshan Afridi 21 junio 2023
  1. ¿Qué es el ParserError: Error al tokenizar datos. C error en Python
  2. Cómo arreglar el ParserError: Error al tokenizar datos. C error en Python
  3. Omita filas para corregir el ParserError: error al tokenizar datos. Error C
  4. Use el separador correcto para corregir el ParserError: Error al tokenizar datos. Error C
  5. Use dropna() para corregir el ParserError: error al tokenizar datos. Error C
  6. Utilice la función fillna() para completar los valores NaN
Error al tokenizar datos C Error en Python

Al jugar con datos para cualquier propósito, es obligatorio limpiar los datos, lo que significa llenar los valores nulos y eliminar las entradas no válidas para limpiar los datos, de modo que no afecte los resultados y el programa funcione sin problemas.

Además, las causas del ParserError: Error tokenizing data. C error puede estar proporcionando datos incorrectos en los archivos, como datos mixtos, un número diferente de columnas o varios archivos de datos almacenados como un solo archivo.

Y también puede encontrar este error si lee un archivo CSV como read_csv pero proporciona diferentes separadores y terminadores de línea.

¿Qué es el ParserError: Error al tokenizar datos. C error en Python

Como se discutió, el ParserError: Error tokenizing data. C error ocurre cuando su programa Python analiza datos CSV pero encuentra errores como valores no válidos, valores nulos, columnas sin completar, etc.

Digamos que tenemos estos datos en el archivo data.csv, y lo estamos usando para leer con la ayuda de pandas, aunque tiene un error.

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

Ejemplo de código:

import pandas as pd

pd.read_csv("data.csv")

Producción :

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

Como puede ver, el código anterior ha arrojado un ParserError: Error tokenizing data. C error al leer datos del archivo data.csv, que dice que el compilador esperaba campos 5 en la línea 4, pero obtuvo 6 en su lugar.

El error en sí mismo se explica por sí mismo; indica el punto exacto del error y también muestra el motivo del error, para que podamos solucionarlo.

Cómo arreglar el ParserError: Error al tokenizar datos. C error en Python

Hasta ahora hemos entendido el ParserError: Error tokenizing data. C error en Python; ahora vamos a ver cómo podemos solucionarlo.

Siempre se recomienda limpiar los datos antes de analizarlos porque puede afectar los resultados o hacer que su programa no se ejecute.

La limpieza de datos ayuda a eliminar entradas de datos no válidas, valores nulos y entradas no válidas; básicamente, es una etapa de preprocesamiento del análisis de datos.

En Python tenemos diferentes funciones y parámetros que ayudan a limpiar los datos y evitar errores.

Omita filas para corregir el ParserError: error al tokenizar datos. Error C

Esta es una de las técnicas más comunes que saltan la fila, provocando el error; como puede ver en los datos anteriores, la última línea estaba causando el error.

Ahora, usando el argumento on_bad_lines = 'skip', ignoró la fila con errores y almacenó el resto en el marco de datos df.

import pandas as pd

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

Producción :

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

El código anterior omitirá todas esas líneas que causan errores e imprime las demás; como puede ver en la salida, la última línea se salta porque estaba causando el error.

Pero estamos obteniendo los valores NaN que deben corregirse; de lo contrario, afectará los resultados de nuestro análisis estadístico.

Use el separador correcto para corregir el ParserError: Error al tokenizar datos. Error C

El uso de un separador no válido también puede causar el ParserError, por lo que es importante usar el separador correcto y adecuado según los datos que proporcione.

A veces usamos tabulador para separar los datos o el espacio CSV, por lo que también es importante especificar ese separador en su programa.

import pandas as pd

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

Producción :

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

El separador es , por eso hemos mencionado sep=',' y el lineterminator ='\n' porque nuestra línea termina en \n.

Use dropna() para corregir el ParserError: error al tokenizar datos. Error C

La función dropna se usa para eliminar todas las filas que contienen valores Null o NaN.

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())

Producción :

      **** 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

Como solo tenemos dos filas, una fila tiene todos los atributos, pero la segunda fila tiene valores NaN, por lo que la función dropna() ha saltado la fila con el valor NaN y muestra solo una fila.

Utilice la función fillna() para completar los valores NaN

Cuando obtiene valores NaN en sus datos, puede usar la función fillna() para reemplazar otros valores que usan el valor predeterminado 0.

Ejemplo de código:

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

Producción :

      **** 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

El fillna() ha reemplazado el NaN con 0 para que podamos analizar los datos correctamente.

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

Artículo relacionado - Python Error