Python で CSV への出力時に、文字コードを変換したいと思うことはないだろうか。
文字コードとは、コンピュータが文字を数字で表現し、保存や表示するためのルールのこと。
Python で処理したデータ結果を、文字コードを指定して CSV に出力したい場合、to_csv 関数の引数 encoding を使うと便利だ。
今回は、Python で、CSV への出力時に文字コードを変換する方法を紹介したい。
Python で、CSV への出力時に文字コードを変換する方法
Python で、CSV への出力時に文字コードを変換するには、to_csv 関数の引数 encoding を使用する。
to_csv 関数の形式
to_csv 関数の形式は、以下のとおり。
実際の操作方法は?
Jupyterlab の起動後、ノートブックを開いたあとの入力方法は、以下のとおり。
「import pandas as pd」、「path = ‘C:\\test_2\\test2.xlsx’」、「data = pd.read_excel(path)」で、test2.xlsx ファイルの内容を変数 data に格納し、
「data2 = pd.pivot_table(data, index=’担当’, columns=’商品名’, values=’売上金額’, aggfunc=’sum’)」でピボット表示した xlsx ファイルの内容を変数 data2に格納する。
上記のソースコードに加えて、以下のソースコードを追加し、「Shift」+「Enter」を押す。
「data2.to_csv(‘C:\\test_2\\out.csv’, index=True, encoding=’ansi’)」
import pandas as pd
path = 'C:\\test_2\\test2.xlsx'
data = pd.read_excel(path)
pd.pivot_table(data, index='担当', columns='商品名', values='売上金額', aggfunc='sum')
data2 = pd.pivot_table(data, index='担当', columns='商品名', values='売上金額', aggfunc='sum')
data2.to_csv('C:\\test_2\\out.csv',index=True,encoding='ansi')
プログラムが実行された。
各行のコードの意味は以下のとおり。
コード | コードの意味 |
import pandas as pd | pandas ライブラリをインポートする。 |
path = ‘C:\\test_2\\test2.xlsx’ | 変数 path にファイルのフルパスを格納する。 |
data = pd.read_csvl(path) | ファイルの内容を読み込み、変数 data に格納する。 |
pd.pivot_table(data, index=’担当’, columns=’商品名’, values=’売上金額’, aggfunc=’sum’) | 変数 data の内容を、担当ごとの商品名と売上金額(合計) を表示する。 |
data2 = pd.pivot_table(data, index=’担当’, columns=’商品名’, values=’売上金額’, aggfunc=’sum’) | 変数 data のピボット表示を変数 data2 に格納する。 |
data2.to_csv(‘C:\\test_2\\out.csv’,index=True,encoding=’ansi’) | to_csv 関数を使用して、変数 data2 に格納されているデータを、文字コード ANSI で out.csv に出力する。 |
フォルダーパスの「C:\\test_2\\」に「out.csv」が出力された。
CSV ファイルをダブルクリックして開いてみると、「test2.xlsx」のピボット表示されたデータ内容が出力されており、文字化けせずに、ファイルを開くことができた。
文字コードの種類
文字コードの指定で、「ANSI」も含めて覚えておくと便利な文字コードは、以下のとおり。
>>Pythonで、データ結果のエクセル出力方法を知りたい方はコチラ
>>Pythonで、エクセルデータのグラフ作成方法を知りたい方はコチラ
>>Pythonで、エクセルデータの集計方法を知りたい方はコチラ
コメント