【Python】エクセルの操作を自動化する方法

この記事では、Pythonを使用してエクセルファイルを読み込み、データを操作・加工し、グラフを作成する方法を紹介します。

さらに、エクセルファイルを保存する方法も学ぶことができます。

Pythonを使ってエクセルデータを効果的に扱いたい方におすすめの内容です。

目次から探す

エクセルファイルの読み込み

エクセルファイルをPythonで読み込む方法は、pandasライブラリを使用することで簡単に行うことができます。

以下にサンプルコードを示します。

import pandas as pd

# エクセルファイルを読み込む
df = pd.read_excel('sample.xlsx')

# データフレームの中身を表示
print(df)

上記のコードでは、pandasライブラリをpdとしてインポートし、read_excel関数を使用してsample.xlsxというエクセルファイルを読み込んでいます。

読み込んだデータはデータフレーム(DataFrame)として変数dfに格納されます。

最後にprint(df)でデータフレームの中身を表示しています。

エクセルファイルを読み込む際には、pandasライブラリがインストールされていることを確認してください。

インストールされていない場合は、pip install pandasコマンドを使用してインストールできます。

データの操作

シートの選択

エクセルファイルを操作する際には、まず操作するシートを選択する必要があります。

Pythonのopenpyxlライブラリを使用すると、特定のシートを選択することができます。

以下はその例です。

import openpyxl

# エクセルファイルを開く
workbook = openpyxl.load_workbook('sample.xlsx')

# シートを選択
sheet = workbook['Sheet1']

セルへのアクセス

特定のセルにアクセスしてデータを取得したり、データを書き込んだりすることができます。

以下は、セルへのアクセス方法の例です。

import openpyxl

# エクセルファイルを開く
workbook = openpyxl.load_workbook('sample.xlsx')

# シートを選択
sheet = workbook['Sheet1']

# セルにアクセスして値を取得
value = sheet['A1'].value

# セルに値を書き込む
sheet['B1'] = 'Hello, World!'

データの読み込みと書き込み

エクセルファイルからデータを読み込んだり、データを書き込んだりすることができます。

以下は、データの読み込みと書き込みの例です。

import openpyxl

# エクセルファイルを開く
workbook = openpyxl.load_workbook('sample.xlsx')

# シートを選択
sheet = workbook['Sheet1']

# データの読み込み
data = []
for row in sheet.iter_rows(values_only=True):
    data.append(row)

# データの書き込み
new_data = ['apple', 'banana', 'cherry']
sheet.append(new_data)

# エクセルファイルを保存
workbook.save('sample.xlsx')

これらの方法を使うことで、Pythonを使ってエクセルファイルのデータを操作することができます。

データの加工

エクセルファイルからデータを読み込んだ後、データを加工することで分析や可視化に役立てることができます。

以下では、データの整形、フィルタリング、ソートについて解説します。

データの整形

データの整形は、データを扱いやすい形に整える作業です。

例えば、日付のフォーマットを統一したり、不要な列や行を削除したりすることが含まれます。

Pythonを使用してエクセルファイルからデータを読み込み、整形する方法を以下に示します。

# データの整形サンプルコード
import pandas as pd

# エクセルファイルからデータを読み込む
data = pd.read_excel('data.xlsx')

# データの整形処理
# ここに整形処理のコードを記述

# 整形後のデータを表示
print(data)

データのフィルタリング

データのフィルタリングは、特定の条件に合致するデータのみを抽出する作業です。

条件を指定して、該当するデータのみを取得することができます。

以下は、Pythonを使用してデータをフィルタリングする例です。

# データのフィルタリングサンプルコード
import pandas as pd

# エクセルファイルからデータを読み込む
data = pd.read_excel('data.xlsx')

# データのフィルタリング
filtered_data = data[data['column_name'] > 10]

# フィルタリング後のデータを表示
print(filtered_data)

データのソート

データのソートは、特定の列を基準にデータを昇順や降順に並び替える作業です。

Pythonを使用してデータをソートする方法を以下に示します。

# データのソートサンプルコード
import pandas as pd

# エクセルファイルからデータを読み込む
data = pd.read_excel('data.xlsx')

# データのソート
sorted_data = data.sort_values(by='column_name', ascending=False)

# ソート後のデータを表示
print(sorted_data)

データの整形、フィルタリング、ソートを行うことで、エクセルのデータを効果的に操作し、分析に活かすことができます。

グラフの作成

Pythonを使用してエクセルデータからグラフを作成することができます。

グラフを作成する際には、matplotlibやseabornなどのライブラリを活用すると便利です。

以下では、グラフの作成方法について説明します。

グラフの種類

Pythonを用いてエクセルデータから様々な種類のグラフを作成することができます。

代表的なグラフの種類としては、折れ線グラフ、棒グラフ、円グラフなどがあります。

それぞれのグラフはデータの特性に合わせて適切なものを選択することが重要です。

以下は、折れ線グラフと棒グラフの作成例です。

import pandas as pd
import matplotlib.pyplot as plt

# エクセルデータの読み込み
df = pd.read_excel('data.xlsx')

# 折れ線グラフの作成
plt.plot(df['X軸'], df['Y軸'])
plt.xlabel('X軸ラベル')
plt.ylabel('Y軸ラベル')
plt.title('折れ線グラフ')
plt.show()

# 棒グラフの作成
plt.bar(df['カテゴリ'], df['数値'])
plt.xlabel('カテゴリ')
plt.ylabel('数値')
plt.title('棒グラフ')
plt.show()

グラフのカスタマイズ

作成したグラフはさまざまな方法でカスタマイズすることができます。

例えば、グラフの色や線のスタイル、軸の範囲などを変更することができます。

以下は、グラフのカスタマイズの例です。

# グラフの色と線のスタイルを変更
plt.plot(df['X軸'], df['Y軸'], color='red', linestyle='--')

# 軸の範囲を設定
plt.xlim(0, 10)  # X軸の範囲を0から10に設定
plt.ylim(0, 100)  # Y軸の範囲を0から100に設定

# グリッドを表示
plt.grid(True)

# 凡例を追加
plt.legend(['データ1', 'データ2'])

plt.show()

これらのサンプルコードを参考にして、エクセルデータからグラフを作成し、必要に応じてカスタマイズしてみてください。

エクセルファイルの保存

エクセルファイルを保存する際には、保存するファイル形式や保存方法を適切に選択することが重要です。

以下では、Pythonを使用してエクセルファイルを保存する方法について解説します。

ファイル形式の選択

Pythonを使用してエクセルファイルを保存する際には、保存するファイル形式を指定することができます。

一般的なエクセルファイル形式には、.xlsx形式や.csv形式などがあります。

以下は、.xlsx形式でエクセルファイルを保存するサンプルコードです。

import pandas as pd

# データフレームを作成
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# エクセルファイルに保存
df.to_excel('sample.xlsx', index=False)

上記のコードでは、Pandasライブラリを使用してデータフレームを作成し、to_excelメソッドを使って.xlsx形式でエクセルファイルを保存しています。

index=Falseは、行のインデックスを保存しないようにするオプションです。

ファイルの保存方法

エクセルファイルを保存する方法には、指定したパスに直接保存する方法や、ファイルダイアログを表示してユーザーに保存先を選択させる方法などがあります。

以下は、ファイルダイアログを表示してエクセルファイルを保存するサンプルコードです。

import pandas as pd
from tkinter import filedialog
import tkinter as tk

# データフレームを作成
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# ファイルダイアログを表示して保存先を選択
root = tk.Tk()
root.withdraw()
file_path = filedialog.asksaveasfilename(defaultextension='.xlsx')

# エクセルファイルに保存
df.to_excel(file_path, index=False)

上記のコードでは、filedialogモジュールを使用してファイルダイアログを表示し、ユーザーに保存先を選択させています。

選択されたパスにデータフレームを.xlsx形式で保存しています。

目次から探す