pandasのDataFrameをCSVファイルに書き込む
pandasにデータフレームがあり、それをCSVファイルに書き込みたいと思っています。私はこれを
df.to_csv('out.csv')
そして、エラーが発生します。
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
これを簡単に回避する方法はありますか(データフレームにユニコード文字がある場合など)?また、例えば 'to-tab'メソッド(存在しないと思いますが)を使って、CSVではなくタブ区切りのファイルに書き込む方法はありますか?
604
3
タブで区切るには、
to_csv
のsep
引数を使います。特定のエンコーディング (例: 'utf-8') を使用するには、
encoding
引数を使用します。utf-8'へのエンコードに問題があり、セルごとに確認したい場合は、以下の方法を試してみてはいかがでしょうか。
Python 2の場合
(ここで、"df"は、DataFrameオブジェクトです。)
次に試してみてください。
カラムのエンコーディングは以下の方法で確認できます。
警告: errors='ignore'では、文字が省略されます。
Python 3の場合
UTF-8を指定した場合にも、このような問題が発生することがあります。 ファイルの読み込み時にエンコーディングを指定し、ファイルへの書き込み時にも同じエンコーディングを指定することをお勧めします。 これで問題が解決するかもしれません。