La fonction to_excel de pandas génère une TypeError inattendue


13

J'ai créé un dictionnaire de données pandas:

d[k] = pd.DataFrame(data=data[i])

Je suppose donc que d[k]c'est une trame de données pandas correcte.

alors

for k in d.keys():
  d[k].to_excel (file_name)

Ensuite, j'ai l'erreur:

TypeError: got invalid input value of type <class 'xml.etree.ElementTree.Element'>, expected string or Element

J'utilise Python 3.7, pandas 0.25.3.

Mise à jour : si je remplace to_excelpar to_csv, le code fonctionne parfaitement.


1
c'est quoi file_name? est-ce une chaîne?
Quang Hoang

Oui, ça l'est. Juste quelque chose comme'/data/myfile.xlsx'
mommomonthewind

que se passe-t-il si vous essayez d[k].to_excel(str(filename))?
Quang Hoang

Même problème. Je ne pense pas que le problème réside dans le file_name. J'ai vérifié et je suis sûr que c'est un nom de fichier valide.
mommomonthewind

J'ai eu la même erreur en utilisant Openpyxl: 3.0.2 pandas 0.25.3 Python 3.8.1 (tags / v3.8.1: 1b293b6, 18 décembre 2019, 23:11:46) [MSC v.1916 64 bits (AMD64)] Suppression openpyxl 3.0.2 et la mise à niveau d'openpyxl vers 3.0.3 ont résolu le problème, comme d'autres l'ont signalé. Je vous remercie. Une chose que j'ajouterai: le bogue openpyxl 3.0.2 a corrompu le fichier * .xlsx auquel il était ajouté, le rendant illisible et irrécupérable par Excel.
user39678

Réponses:


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.