Pythonを使って表データによく使われるExcelファイルの読み書きをしてみよう。
Excelファイルを扱えるようになる外部ライブラリ、openpyxlとファイルを読み込むxlrd、ファイルを書くxlwtをインストールしておきましょう。
Windowsにインストールするときは、コマンドプロンプトを使います。
pip install openpyxl xlrd xlwt
macOSにインストールするときは、ターミナルを使います。
pip3 install openpyxl xlrd xlwt
準備のため「Python_excel」というフォルダを作り、あらかじめ表データを作成しました。
解説
import pandas as pd | 表データーを読み込むpandasライブラリをimportします。省略してpdとします。 |
import openpyxl | Excelファイルを扱えるようになる外部ライブラリをimportします。 |
df = pd.read_csv(“test.csv”) | pdから.read_csv(“ファイル名”)という命令をして読み込みます。それを変数dfに代入します。 |
math = df.sort_values(“数学”,ascending=False) | 数学の点数が高い順に並べ替えます。 |
math.to_excel(“csv_to_excel1.xlsx”) | Excelファイルに出力するためには、to_excel(“ファイル名”.xlsx)とします。 |
CSVファイルから読み取り、Excelファイルに数学の高い順に出力できました。
インデックスを削除して出力する。
先で出力でいましたが、インデックスはなくてもいいですね。ということでインデックスを削除して改めて出力してみよう。
解説
import pandas as pd | 表データーを読み込むpandasライブラリをimportします。省略してpdとします。 |
import openpyxl | Excelファイルを扱えるようになる外部ライブラリをimportします。 |
df = pd.read_csv(“test.csv”) | pdから.read_csv(“ファイル名”)という命令をして読み込みます。それを変数dfに代入します。 |
math = df.sort_values(“数学”,ascending=False) | 数学の点数が高い順に並べ替えます。 |
math.to_excel(“csv_to_excel2.xlsx”, index=False, sheet_name=”数学並べ替え”) | 新たにexcel2フィルを作る命令し、インデックスを削除する命令を追記します。sheet_name=”シート名”とすればsheet名を命名できます。 |
excel2ファイルがフォルダ内に作成されました。そしてインデックスを削除し、シート名が命名されている内容になりました。
複数のシートを1つのExcelファイルに出力する
最初に読み込んだ「元のデータ」と「数学点数の多い順で並べ替え」した2つのシートを1つのExcelファイルに出力するやり方を学びましょう。
解説
import pandas as pd | 表データーを読み込むpandasライブラリをimportします。省略してpdとします。 |
import openpyxl | Excelファイルを扱えるようになる外部ライブラリをimportします。 |
df = pd.read_csv(“test.csv”) | pdから.read_csv(“ファイル名”)という命令をして読み込みます。それを変数dfに代入します。 |
math = df.sort_values(“数学”,ascending=False) | 数学の点数が高い順に並べ替えます。 |
with pd.ExcelWriter(“csv_to_excel3.xlsx”) as writer: | 書式:「with pd.ExcelWriter(“ファイル名.xlsx”) as writer:」 |
df.to_excel(writer, index=False, sheet_name=”元データ”) | 書式:「.to_excel(writer, sheet_name=”シート名1”」 |
math.to_excel(writer, index=False, sheet_name=”数学並べ替え”) | 書式:「.to_excel(writer, sheet_name=”シート名2”」 |
新しいexcel3ファイルが作られ、2つのシートがexcel3ファイルに入りました。
エクセルファイルを読み込む
それでは、先ほど作ったエクセルファイルを読み込む方法を学びましょう。
解説
import pandas as pd | 表データーを読み込むpandasライブラリをimportします。省略してpdとします。 |
import openpyxl | Excelファイルを扱えるようになる外部ライブラリをimportします。 |
df = pd.read_excel(“csv_to_excel2.xlsx”) | pdから.read_excel(“ファイル名.xlsx”)という命令をして読み込みます。それを変数dfに代入します。 |
print(df) | 代入したdfを表示させます。 |
複数シートがある場合は、sheet_nameで指定しよう。
先ほど使ったcsv_to_excel3ファイルの中にある「数学並べ替え」シートを出力させてみましょう。
解説
import pandas as pd | 表データーを読み込むpandasライブラリをimportします。省略してpdとします。 |
import openpyxl | Excelファイルを扱えるようになる外部ライブラリをimportします。 |
df = pd.read_excel(“csv_to_excel3.xlsx”, sheet_name=”数学並べ替え”) | pdから.read_excel(“ファイル名.xlsx”, sheet_name=”シート名”)という命令をして読み込みます。それを変数dfに代入します。 |
print(df) | 代入したdfを表示させます。 |
指定したシートの内容が出力できました。
*尚、ここではバージョン「Python 3.10.1」を使用しています。
この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。