文字コードがANSIであるCSVファイルを、Notepad++ で「utf-8(bom付き)」に変換している処理をPythonで行いたいわけですね。
日本語版のWindowsでは、ANSIはCP932という文字コードです。(これは簡易的な説明です。)
追記 : CP932は、Shift_JISという文字コードを少しだけ拡張したものです。ここでは違いを考慮する必要はないと思われるため、CP932をShift_JISと読み替えてもらってもかまいません。また、Windowsでは、CP932をShift_JISと表示することがあります。
したがって、csvをCP932として開き、UTF-8(BOM付き)として保存すればよいだけです。
Python
1# pandasライブラリでの例
2
3df = pd.read_csv("test.csv", encoding="cp932")
4
5# 処理...
6
7df.to_csv('test.csv', encoding="utf_8_sig")
8
ただ、エクセルでcsvを開いた際に文字化けしているというのはおかしいです。
文字化けは主に間違った文字コードで読むことで発生します。
Excelでは、日本語は主にCP932または、UTF-8(BOM付き)で読むため、CP932のファイルは文字化けせずに読めるはずです。
本当にcsvの文字コードが、ANSI(CP932)かどうかを確かめる必要があると思います。
上記のコードでは、csvの文字コードがCP932でなければ、エラーが起きるか、正しく読めません。
文字化けしないで読みこめた時の文字コードが、正しい文字コードです。
「添付されているデータがcsvになっているのでそのままエクセルでcsvを開いた際に文字化けしております。
メモ帳で開き直した際に右下にANSIとありました。」
とありますが、メモ帳で開いた時文字化けしていれば、ANSIは正しい文字コードではないと思います。
よくある例として、Excelでは、UTF-8(BOM無し)のファイルを読み込むと文字化けします。
その場合、以下のようにするとよいと思います。
Python
1# pandasライブラリでの例
2
3df = pd.read_csv("test.csv", encoding="utf_8")
4
5# 処理...
6
7df.to_csv('test.csv', encoding="utf_8_sig")
8# または
9df.to_csv('test.csv', encoding="cp932")
10