データフレームが Excel に書き込めるように不正な文字を削除する方法 質問する

データフレームが Excel に書き込めるように不正な文字を削除する方法 質問する

ExcelWriter を使用してデータフレームを Excel スプレッドシートに書き込もうとしていますが、エラーが返され続けます。

openpyxl.utils.exceptions.IllegalCharacterError

データフレームに ExcelWriter が好まない文字が含まれているのではないかと思います。データフレームは 3 つの Excel スプレッドシートから構成されているため、Excel が好まない文字が存在するとは考えられません。奇妙に思えます。

データフレームを反復処理して、ExcelWriter が好まない文字を置き換える方法はありますか? 単に削除するだけでもかまいません。

データフレームから不正な文字を削除または置換する最善の方法は何ですか?

ベストアンサー1

Haipeng Su さんの回答に基づいて、次のことを実行する関数を追加しました。

dataframe = dataframe.applymap(lambda x: x.encode('unicode_escape').
                 decode('utf-8') if isinstance(x, str) else x)

基本的に、Unicode 文字が存在する場合はそれをエスケープします。うまく機能し、Excel スプレッドシートに再び書き込むことができるようになりました。

おすすめ記事