Python を使用して Excel ファイルを読み取る

Vaibhav Vaibhav 2023年10月10日
  1. Python で pandas パッケージを使用して Excel ファイルを読み取る
  2. Python で xlrd パッケージを使用して Excel ファイルを読み取る
  3. Python で Excel ファイルに対して実行されるタスクの例
Python を使用して Excel ファイルを読み取る

Python プログラミング言語は、データサイエンスの分野での使用でよく知られています。データサイエンスでは、通常、データを処理し、ラインプロット、バイオリンプロット、ヒストグラム、ヒートマップなどのグラフやプロット、および平均、中央値、最頻値、確率、分散などの数学的な計算を使用してデータを分析します。Python がさらに適しているのは、ファイルの読み取りと操作が非常にシームレスになるという事実です。データは通常、xlsxlsxcsvtxt などの一般的なファイル形式で表されるため、Python でデータを処理するのは簡単です。

この記事では、いくつかの例を使用して、Python を使用して Excel ファイルを読み取る方法を紹介します。たとえば、[ここ]からダウンロードできるサンプルの Excel ファイルを検討して、全員が同じページにいるようにします。次のコードスニペットを機能させるには、名前を sample.xls に変更するか、次のコードスニペット自体のファイル名を変更します。

Python で pandas パッケージを使用して Excel ファイルを読み取る

Python では、pandas ライブラリを使用して Excel ファイルを読み取ることができます。pandas モジュールは、Python で記述された、堅牢で強力、高速、かつ柔軟なオープンソースのデータ分析および操作ライブラリです。マシンまたは仮想環境にインストールされていない場合は、次のコマンドを使用します。

-pandas をインストールするには:pip install pandas または pip3 install pandas

pandas モジュールを使用して Excel ファイルを読み取るには、次のコードを参照してください。

import xlrd
import pandas

df = pandas.read_excel("sample.xls")
print("Columns")
print(df.columns)

出力:

Columns
Index(['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold',
       'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts',
       ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name',
       'Year'],
      dtype='object')

Python で xlrd パッケージを使用して Excel ファイルを読み取る

Python では、xlrd パッケージを使用して Excel ファイルを読み取ることができます。xlrd モジュールは、Excel ファイルの読み取りとフォーマットに使用される Python パッケージです。マシンまたは仮想環境にインストールされていない場合は、次のコマンドを使用します。

-xlrd をインストールするには、次のコマンドを使用します。

pip install xlrd

または、

pip3 install xlrd

xlrd を使用して Excel ファイルを読み取るには、次のコードを参照してください。

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
columns = []
print("Columns")

for i in range(sheet.ncols):
    columns.append(sheet.cell_value(0, i))

print(columns)

出力:

Columns
['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold', 'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts', ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name', 'Year']

上記のコードの機能について簡単に説明します。まず、open_workbook() 関数を使用して、Excel ファイルのファイル記述子を作成します。次に、ファイルポインタを (0,0) の位置または左上のセルにリセットします。次に、最初の行を繰り返し、すべての列名を変数に格納します。通常、列名は最初の行にあります。そのため、コードはその場所を考慮します。列名が別の行にある場合は、ステートメント sheet.cell_value(0、i)0 値を任意の行番号に変更することができます。基本的に、(0, i)yx の座標を表し、y0xi であり、原点 (0, 0) はファイルの左上に存在すると考えられる。

Python で Excel ファイルに対して実行されるタスクの例

これらの 2つのライブラリをよりよく理解するために、Excel ファイルに対して実行できるいくつかの簡単なタスクを見てみましょう。

Excel ファイルの最初の 3 行を出力する

pandas パッケージの使用

import pandas

df = pandas.read_excel("sample.xls")
count = 3

for index, row in df.iterrows():
    print(row, end="\n\n")

    if index == count - 1:
        break

出力:

Segment                         Government
Country                             Canada
Product                          Carretera
Discount Band                         None
Units Sold                          1618.5
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        32370.0
Discounts                              0.0
 Sales                             32370.0
COGS                               16185.0
Profit                             16185.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 0, dtype: object

Segment                         Government
Country                            Germany
Product                          Carretera
Discount Band                         None
Units Sold                          1321.0
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        26420.0
Discounts                              0.0
 Sales                             26420.0
COGS                               13210.0
Profit                             13210.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 1, dtype: object

Segment                          Midmarket
Country                             France
Product                          Carretera
Discount Band                         None
Units Sold                          2178.0
Manufacturing Price                      3
Sale Price                              15
Gross Sales                        32670.0
Discounts                              0.0
 Sales                             32670.0
COGS                               21780.0
Profit                             10890.0
Date                   2014-06-01 00:00:00
Month Number                             6
Month Name                            June
Year                                  2014
Name: 2, dtype: object

xlrd パッケージの使用

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
count = 3

for i in range(1, count + 1):
    for j in range(sheet.ncols):
        print(sheet.cell_value(i, j), end=", ")

    print()

出力:

Government, Canada, Carretera, None, 1618.5, 3.0, 20.0, 32370.0, 0.0, 32370.0, 16185.0, 16185.0, 41640.0, 1.0, January, 2014, 
Government, Germany, Carretera, None, 1321.0, 3.0, 20.0, 26420.0, 0.0, 26420.0, 13210.0, 13210.0, 41640.0, 1.0, January, 2014, 
Midmarket, France, Carretera, None, 2178.0, 3.0, 15.0, 32670.0, 0.0, 32670.0, 21780.0, 10890.0, 41791.0, 6.0, June, 2014, 

特定の列の値を出力する

pandas パッケージの使用

import pandas

df = pandas.read_excel("sample.xls")
column = df.columns[4]
print(column)
print("-" * len(column))

for index, row in df.iterrows():
    print(row[column])

出力:

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...

xlrd パッケージの使用

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
column_index = 4
column = sheet.cell_value(0, column_index)
print(column)
print("-" * len(column))

for row in range(1, sheet.nrows):
    print(sheet.cell_value(row, column_index))

出力:

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python Excel