The function to_excel of pandas generate an unexpected TypeError

mommomonthewind picture mommomonthewind · Dec 4, 2019 · Viewed 7.1k times · Source

I created a dictionary of pandas dataframe:

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

So I assume that d[k] is a correct pandas dataframe.

Then

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

Then I have the error:

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

I am using Python 3.7, pandas 0.25.3.

Update: if I replace to_excel by to_csv, the code runs perfectly.

Answer

Animeta picture Animeta · Dec 4, 2019

I have same problem with openpyxl=3.0.2,

Refer to this answer, I roll openpyxl back to 3.0.1(conda or pip) and it works.

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

or

>>> pip uninstall openpyxl
>>> pip install openpyxl==3.0.1