usuario3734568
Soy nuevo en Python, estoy tratando de leer el archivo csv usando el siguiente script.
Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='utf-8')
Pero, al recibir el error “UnicodeDecodeError: el códec ‘utf-8’ no puede decodificar el byte 0x96 en la posición 35: byte de inicio no válido”, ayúdenme a saber el problema aquí, utilicé la codificación en el script y pensé que resolvería el error.
Liam
Esto sucede porque eligió la codificación incorrecta.
Ya que está trabajando en una máquina con Windows, simplemente reemplazando
Past=pd.read_csv("C:/Users/.../Past.csv",encoding='utf-8')
con
Past=pd.read_csv("C:/Users/.../Past.csv",encoding='cp1252')
debería resolver el problema.
-
Cómo determinaste eso
cp1252
fue la codificación adecuada? Lo más probable es que no fuera así, pero tuviste suerte porque dejó de arrojar errores, pero ahora tienes caracteres incorrectos en tus datos.– Mark Ransom
28 de julio de 2021 a las 16:36
-
@MarkRansom sí
– Liam
28 de julio de 2021 a las 18:45
-
La forma de averiguar la codificación es con la biblioteca chardet. Usar eso en el archivo con este error me dio “Windows-1252” como codificación, que es un sinónimo de “cp1252” (docs.python.org/3.8/library/codecs.html#codificación-estándar). Consulte stackoverflow.com/a/61025300/2800876 para saber cómo hacerlo.
– Zags
7 abr 2022 a las 15:29
Pregúnteme
Intenta usar:
pd.read_csv("Your filename", encoding="ISO-8859-1")
El código que analicé de algún sitio web se convirtió en esta codificación en lugar de la codificación UTF-8 predeterminada, que es estándar.
-
Bienvenido a StackOverflow. Las respuestas que solo contienen código tienden a marcarse para su eliminación, ya que son de “baja calidad”. Lea la sección de ayuda sobre cómo responder preguntas y luego considere agregar algún comentario a su respuesta.
–Graham
7 de marzo de 2018 a las 2:18
-
Sí,
ISO-8859-1
elimina todos los errores porque cada posible byte se asigna a un carácter válido. Sin embargo, no significa que los caracteres sean correctos. ¿Cómo determinaste la codificación correcta utilizada por el sitio web?– Mark Ransom
28 de julio de 2021 a las 16:33
Use esta solución, eliminará (ignorará) los caracteres y devolverá la cadena sin ellos. Solo use esto si su necesidad es quitarlos, no convertirlos.
with open(path, encoding="utf8", errors="ignore") as f:
Usando errors="ignore"
Solo perderás algunos personajes. pero si no le importan, ya que parecen ser caracteres adicionales que se originan en el formato y la programación incorrectos de los clientes que se conectan a mi servidor de socket. Entonces es una solución directa fácil. referencia
Lo siguiente me funciona muy bien:
encoding = 'latin1'
Es una pregunta antigua pero aparece mientras busca soluciones a este error. Así que pensé en responder por todos los que todavía tropiezan con este hilo. La codificación del archivo se puede verificar antes de pasar el valor correcto para el argumento de codificación. Para obtener la codificación, una opción simple en Windows es abrir el archivo en Notepad++ y mirar la codificación. El valor correcto para el argumento de codificación se puede encontrar en la documentación de Python. Mire esta pregunta y las respuestas en stackoverflow para obtener más detalles sobre las diferentes posibilidades para obtener la codificación del archivo.
Juba Fourali
Usar el siguiente código funciona para mí:
with open(keeniz_dir + '/world_cities.csv', 'r', encoding='latin1') as input:
Desarrollador-Felix
df = pd.read_csv( "/content/data.csv",encoding='latin1')
Simplemente agregue ,encoding=’latin1′ y funcionará