プログラミング言語を使ってMS-Excelのファイルを扱うにはどうしたらいいのだろう、と考えたことはありませんか?この記事では、Pythonプログラミング言語のxlrdモジュールを使って、Excelファイルを処理する方法を学習していきます。
それでは、始めましょう。
MS-Excel入門
Microsoft Excelは、多くの産業で重要な機能を担っているため、最も重要なコンピュータアプリケーションの1つです。
企業の業務、教室での課題、個人的なデータ管理まで、最も広く使われている表計算アプリケーションです。
pip install xlrd |
Excelは1985年に発表されました。
それ以来、数式を使った計算や、数学的な計算が必要な作業において重要な役割を担ってきました。
Excelは、その使いやすさと多くのアプリケーションの視覚的な基礎としての能力から、多くの組織、個人および組織的な企業で使用されています。
xlrd モジュールの紹介
xlrdモジュールは、表計算ソフトからデータを取得するために使用されることがあります。
例えば、Pythonを使ってデータの読み書きをしたり、データを変更したりすることができます。
また、複数のシートを巡回し、何らかの条件に基づいてデータを抽出したり、行や列を編集したり、多大な労力を必要とする場合もあります。
スプレッドシートからデータを抽出するには、xlrd モジュールを使用します。
xlrdモジュールを実装する前に、あなたのシステムのCMDで以下に述べるコマンドラインを使用して、モジュールがプログラムにインポートされていることを確認する必要があります。
1
2
3
4
|
# Importing Module import xlrd
# Loading Excel file wb = xlrd.open_workbook( 'Financial Sample.xlsx' )
|
Python で xlrd モジュールを使う
私たちはxlrdモジュールを使って、いくつかのことを次々と行っていくことになります。
その前に、使用するデータセットについて見ておきましょう。
適当なデータセットを使ってもいいし、自分でカスタムデータセットを作ってもいい。
私はランダムな金融データセットをダウンロードしました。
1
2
|
# Storing the first sheet into a variable sheet = wb.sheet_by_index( 0 )
|
1. プログラムへのExcelファイルのロード
まず、xlrd モジュールをインポートし、xlrd モジュールの open_workbook
関数を使用して、関数内に記述されたパスのワークブックをロードします。
1
2
3
|
# Printing various cell values print ( "Value of 0-0 cell: " ,sheet.cell_value( 0 , 0 ))
print ( "Value of 20-4 cell: " ,sheet.cell_value( 20 , 4 ))
|
2. Excelファイルの読み込み
ここでは、1つのExcelファイル内に複数のワークブックが存在する可能性がありますが、最初のワークブックで作業を行いたいので、sheet_by_index
関数を使用して、作業したいシートのインデックスを渡します。
Value of 0 - 0 cell: Segment
Value of 20 - 4 cell: 1006.0
|
セルの値を印刷する
あるワークブックを読み込んだ後、cell_value
関数を使用して特定のセルの値を表示したいと思います。
1
2
3
|
# Get max no of rows and columns print ( "Number of Rows: " , sheet.nrows)
print ( "Number of Columns: " ,sheet.ncols)
|
実行後の出力は次のようになります。
Number of Rows: 701
Number of Columns: 16
|
行数、列数の印字について
エクセルファイルの行と列の数を表示するには、「nrows」「ncols」関数を使用します。
1
2
3
4
|
# Get all column names print ( "ALL COLUMN NAMES ARE: " )
for i in range (sheet.ncols):
print (sheet.cell_value( 0 ,i))
|
実行後の出力は次のようになります。
ALL COLUMN NAMES ARE:
Segment Country Product Discount Band Units Sold Manufacturing Price Sale Price Gross Sales Discounts Sales
COGS Profit Date Month Number Month Name Year |
全カラムの名前を印刷する
これは、以下のコードで実現できます。
最初の行の各列のセルの値を表示すればよいのです。
1
2
3
4
5
|
# Get first 10 rows for 5 columns for i in range ( 11 ):
for j in range ( 5 ):
print (sheet.cell_value(i,j), end = " " )
print ()
|
実行後の出力は以下のようになる。
Segment Country Product Discount Band Units Sold Government Canada Carretera None 1618.5 Government Germany Carretera None 1321.0 Midmarket France Carretera None 2178.0 Midmarket Germany Carretera None 888.0 Midmarket Mexico Carretera None 2470.0 Government Germany Carretera None 1513.0 Midmarket Germany Montana None 921.0 Channel Partners Canada Montana None 2518.0 Government France Montana None 1899.0 Channel Partners Germany Montana None 1545.0 |
5列の最初の10行を印刷する
これは、後述のコードで実現できます。
複数の行と列を印刷したい場合は、以下のようにします。
出力は以下のようになります。
まとめ
あなたは、xlrdモジュールを使ってExcelファイルを読み込み、読み取る方法を学びました。
このチュートリアルは気に入りましたか?いずれにせよ、以下のチュートリアルをご覧になることをお勧めします。
- Pythonを使用してExcelシートからデータをプロットする
- Pandasを使ってテキストファイルを読む – A Brief Reference
お時間を割いていただきありがとうございました。