Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

2K
Vistas
Los pandas leyeron _excel: el códec 'utf-8' no puede decodificar el byte 0xa8 en la posición 14: byte de inicio no válido

Intentando leer el archivo MS Excel, versión 2016. El archivo contiene varias listas con datos. Archivo descargado de DataBase y se puede abrir en MS Office correctamente. En el siguiente ejemplo, cambié el nombre del archivo.

EDITAR: el archivo contiene palabras en ruso e inglés. Lo más probable es que haya usado la codificación Latin-1, pero encoding='latin-1' no ayuda

 import pandas as pd with open('1.xlsx', 'r', encoding='utf8') as f: data = pd.read_excel(f)

Resultado:

 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte

Sin encoding ='utf8'

 'charmap' codec can't decode byte 0x9d in position 622: character maps to <undefined>

PS Task es procesar 52 archivos, fusionar datos en cada hoja con las hojas correspondientes en los 52 archivos. Por lo tanto, no manipule los consejos de trabajo.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El problema es que el solicitante original está llamando a read_excel con un identificador de archivo como primer argumento. Como lo demostró el último en responder, el primer argumento debe ser una cadena que contenga el nombre del archivo.

Me encontré con este mismo error usando:

df = pd.read_excel(open("file.xlsx",'r'))

pero correcto es:

df = pd.read_excel("file.xlsx")

over 4 years ago · Santiago Trujillo Denunciar

0

Lo más probable es que estés usando Python3. En Python2 esto no sucedería.

Los archivos xlsx son binarios (en realidad son un xml, pero están comprimidos), por lo que debe abrirlos en modo binario. Use esta llamada para abrir:

 open('1.xlsx', 'rb')

No hay un seguimiento completo, pero imagino que UnicodeDecodeError proviene del objeto del archivo, no de read_excel(). Eso sucede porque el flujo de bytes puede contener cualquier cosa, pero no queremos que la decodificación ocurra demasiado pronto; read_excel() debe recibir bytes sin procesar y poder procesarlos.

over 4 years ago · Santiago Trujillo Denunciar

0

Lo más probable es que el problema esté en los símbolos rusos.

Charmap es el método de decodificación predeterminado que se utiliza en caso de que no se detecte ninguna codificación.

Como veo, si utf-8 y latin-1 no ayudan, intente leer este archivo no como

 pd.read_excel(f)

pero

 pd.read_table(f)

o incluso simplemente

 f.readline()

para verificar qué es un símbolo, genere una excepción y elimine este símbolo/símbolos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda