パンダの関数to_excelが予期しないTypeErrorを生成します


13

私はパンダのデータフレームの辞書を作成しました:

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

だから私はそれd[k]が正しいパンダのデータフレームだと思います。

その後

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

次に、エラーがあります:

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

Python 3.7、pandas 0.25.3を使用しています。

更新:で置き換えると、コードは完全に実行to_excelされto_csvます。


1
なにfile_name?それはひもですか?
Quang Hoang

はい、そうです。ちょうどそのようなもの'/data/myfile.xlsx'
mommomonthewind

しようとするとどうなりますd[k].to_excel(str(filename))か?
Quang Hoang

同じ問題。問題はにあるとは思いませんfile_name。私はそれをチェックし、それが有効なファイル名であることを確信しています。
mommomonthewind

Openpyxl:3.0.2 pandas 0.25.3 Python 3.8.1(tags / v3.8.1:1b293b6、Dec 18 2019、23:11:46)を使用して同じエラーが発生しました[MSC v.1916 64ビット(AMD64)]削除他の報告によると、openpyxl 3.0.2とopenpyxlを3.0.3にアップグレードすると、問題が修正されました。ありがとうございました。追加することの1つは、openpyxl 3.0.2のバグにより、追加先の* .xlsxファイルが破損し、Excelで読み取れなくなったり、回復できなくなったりすることです。
user39678

回答:


37

と同じ問題がありますopenpyxl=3.0.2

この回答を参照してください、私はopenpyxlを3.0.1(condaまたはpip)にロールバックし、それが機能します。

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

または

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


この問題はopenpyxl 3.0.3で修正されました。
ジーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.