Fungsi to_excel dari panda menghasilkan TypeError yang tidak terduga

13

Saya membuat kamus kerangka data panda:

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

Jadi saya berasumsi itu d[k]adalah kerangka data panda yang benar.

Kemudian

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

Maka saya memiliki kesalahan:

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

Saya menggunakan Python 3.7, panda 0.25.3.

Pembaruan : jika saya ganti to_exceldengan to_csv, kode berjalan dengan sempurna.

mommomonthewind
sumber
1
apa file_name? apakah ini sebuah string?
Quang Hoang
Ya itu. Hanya sesuatu seperti'/data/myfile.xlsx'
mommomonthewind
apa yang terjadi jika kamu mencoba d[k].to_excel(str(filename))?
Quang Hoang
Masalah yang sama. Saya tidak berpikir masalahnya ada pada file_name. Saya memeriksa dan cukup yakin bahwa itu adalah nama file yang valid.
mommomonthewind
Saya mendapat kesalahan yang sama menggunakan Openpyxl: 3.0.2 panda 0.25.3 Python 3.8.1 (tag / v3.8.1: 1b293b6, 18 Desember 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] Menghapus openpyxl 3.0.2 dan memutakhirkan openpyxl ke 3.0.3 memperbaiki masalah, seperti yang dilaporkan orang lain. Terima kasih. Satu hal yang akan saya tambahkan: bug openpyxl 3.0.2 merusak file * .xlsx yang ditambahkan, membuatnya tidak dapat dibaca dan tidak dapat dipulihkan oleh Excel.
user39678

Jawaban:

37

Saya memiliki masalah yang sama dengan openpyxl=3.0.2,

Lihat jawaban ini , saya roll openpyxl kembali ke 3.0.1 (conda atau pip) dan berhasil.

>>> conda remove openpyxl
>>> conda install openpyxl==3.0.1

atau

>>> pip uninstall openpyxl
>>> pip install openpyxl==3.0.1
Animeta
sumber
1
Dilacak di sini: bitbucket.org/openpyxl/openpyxl/issues/1396/…
Shaheed Haque
Masalah ini telah diperbaiki di openpyxl 3.0.3.
zeeks