\

PythonでExcelのCSVファイルを扱う際、特に日本語が含まれる場合、文字コードに気を付ける必要があります。基本的に、ファイルの読み書きがコンピュータだけでなく、人間がExcelなどを使ってファイル編集する場合などは、注意が必要となります。

UTF-8とExcel

ファイルを扱うのがコンピュータのみの場合は、基本的に文字コードをUTF-8にしておけば問題ないです。しかし、人がExcelでファイルを編集する可能性がある場合、文字コードがUTF-8だと日本語が文字化けして正常に表示されないことがあります。

この問題を解決するためには、BOM付のUTF-8にしてやることで、Excelでも日本語が文字化けせず、かつコンピュータでもUTF-8として認識可能となります。

pandasでのファイル読み書き

Pythonのpandasライブラリを使ってCSVファイルを扱う場合、以下のように文字コードを指定してファイルを読み込むことができます。

import pandas as pd

df = pd.read_csv('ファイル名', encoding = 'utf-8') #文字コードの指定
print(df)

また、BOM付のUTF-8でCSVファイルを保存するには、以下のようにします。

df.to_csv("./data/sample_utf8_with_bom.csv", index=False, encoding="utf_8_sig")

この方法で保存したCSVファイルをExcelで開いても、日本語が文字化けせずに表示されます。Excelでファイルを編集して保存し、プログラムからファイルを読み込んでも、文字コードがUTF8なので、文字化けを気にせずに読み込めます。

まとめ

PythonとExcelを連携させる際には、文字コードの扱いが重要となります。特に、日本語が含まれるデータを扱う場合、UTF-8のBOM付を利用することで、PythonとExcelの間でスムーズにデータのやり取りを行うことができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です