【目指せ自動化】Pythonでスプレッドシートを操作して書き込み・読み込みを行う方法!

目次
ウマたん当サイト【スタビジ】の本記事では、Pythonでスプレッドシートを操作する方法について解説していきます。スプレッドシートの面倒な作業をPythonで自動化していきましょう!
こんにちは!スタビジ編集部です!
この記事ではPythonを使ってスプレッドシートを操作する方法について解説します!
仕事でもプライベートでもよく利用される”スプレッドシート(Google spreadsheets)“!
ただ、以下のように感じる方も多いのではないでしょうか。
スプレッドシートにデータを集めたはいいけど、手動で整理するのが面倒、、、
クラウドの利点を生かして、作業を効率化したい!
こんな悩みはPythonと組み合わせることで解決できることが多いです!
ウマたんPythonでスプレッドシートを扱う方法をマスターして、面倒な作業をどんどんラクにしていこう!
Pythonでの自動化については以下の記事で詳しく解説しているので参考にしてみて下さい。
Pythonの自動化で出来ることの例と独学実装ロードマップを徹底解説!【PyAutoGUI/Selenium】当サイト【スタビジ】の本記事では、Pythonで出来る自動化について徹底的に見ていきたいと思います!様々な業務を自動化して、ルーティン業務をなくしていくことであなたの仕事や生活は格段に楽になるはずです!Pythonの自動化で出来ること・勉強ロードマップ・そして最終的に簡単な実装を見ていきます。
より詳しくGoogleスプレッドシートを操作して業務を効率化する方法を学びたい人は以下のUdemyコースをチェックしてみてください!
また、Pythonについて基礎から体系的に学びたい人は当メディアが運営する「スタアカ」の以下のコースをチェックしてみて下さい。
Pythonでスプレッドシートを操作するメリット
まずはPythonでスプレッドシートを操作するメリットについて見ていきましょう。
Pythonでスプレッドシートを操作するメリットは以下です。
それぞれ見ていきましょう。
作業の自動化
Pythonで処理を記述することで手動で行っている作業を自動化することが出来ます。
スプレッドシートで行っているデータの集計やグラフの作成といった作業をPythonで自動化することで作業時間を削減や作業ミス軽減につなげることが出来ます。
ウマたんPythonでスプレッドシートを扱うことで作業を効率化できる!
PythonではX(旧Twitter)の自動化もすることが出来ます。以下の記事で解説しているので参考にしてみて下さい。
Pythonを使ってX(旧Twitter)のAPI経由で自動投稿する方法当サイト【スタビジ】の本記事では、Pythonを使ったX(旧Twitter)の自動投稿の方法について解説していきます。SNSマーケティングで重要なXの運用をPythonを使って効率化していきましょう!
Pythonライブラリによるデータ解析
Pythonでは”pandas“や”Numpy“など、データ処理や分析のためのライブラリが多くあります。
そのため、Pythonで操作することでスプレッドシートで集めたデータをそのまま処理・分析することが可能になります。
ウマたんスプレッドシートで手動で操作するよりも、Pythonのライブラリを活用することでより効果的なデータ解析が出来る!
他のクラウドサービスとの連携
Pythonは他の様々なクラウドサービスと接続することが出来ます。
そのため、Pythonを利用することでスプレッドシートのデータを他のクラウドサービスと連携させるといった使い方も可能です。
ウマたん例えばPythonを使ってスプレッドシートで集計したデータをSlackに送るといったことも出来るよ!
Pythonと様々なサービスのAPI連携については以下の記事で解説しているのでチェックしてみて下さい。
【5分で分かる】Pythonを使って様々なサービスのAPIを利用してみよう!当サイト【スタビジ】の本記事では、Pythonを使ってSlackやGoogleのAPIを利用していきます!APIを利用することで非常に様々なことができるので是非試してみましょう!APIを使えるようになると幅が広がりますよ!
【事前作業】Google Cloudのサービスアカウント作成
スプレッドシートを操作する前に事前作業について見ていきましょう。
Pythonでスプレッドシートを操作するためには、スプレッドシートにアクセスする権限が必要になります。
今回はGoogle Cloudの”サービスアカウント“を使って認証を行います。
サービスアカウントはユーザーではなくアプリケーションや外部ツールがリソースにアクセスするために利用されるアカウントです。
権限を付与したサービスアカウントにアプリケーションを紐づけることでアプリケーションは与えられた操作が可能になります。
サービスアカウントについて詳しく知りたい方は、Google Cloudのドキュメントを参考にしてみて下さい。
サービスアカウントの作成手順は以下になります。
それぞれ見ていきます。
(※Google Cloudなどの画面が2024年7月時点のものなので、実際の画面と異なる場合があります。)
①Google Cloudにログイン
まずはGoogle Cloudのサービスアカウントを作成するためにはGoogle Cloudのアカウントが必要になります。
Google Cloudのアカウント登録方法は以下の記事で解説しているので、まだアカウントを持っていない方は参考にしてみて下さい。
【初心者向け】GoogleのCloud FunctionsにPythonコードをデプロイしAPIを作る方法!当サイト【スタビジ】の本記事では、PythonコードをCoogle CloudのCloud Functionsにデプロイする方法を解説していきます!Cloud Functionsは非常に便利で無料で使える枠が広くぜひ使えるようになっておきたいツールです!
アカウントを取得したら”Google Cloud“にログインします。
②サービスアカウント作成
Pythonからスプレッドシートへの認証をするためのサービスアカウントを作成します。
検索バーで「サービスアカウント」と入力して検索ボタンを押します。
検索結果に「サービスアカウント IAMと管理」と出てくるのでクリックします。
サービスアカウントの管理画面に遷移するので画面上部の「+サービス アカウントを作成」ボタンをクリックします。

サービス アカウント名に任意の文字を入れたら「作成して続行」ボタンをクリックし「完了」ボタンを押すとサービスアカウントが作成されます。

またこの時、作成したサービスアカウントにプロジェクトの「編集者」権限を設定しておきましょう。
③サービスアカウントキー作成
作成したサービスアカウントをクリックします。

「キー」タブを選択し、「新しい鍵を作成」をクリックします。

キーのタイプを選択できるの「JSON」を選択して、作成ボタンを押すと秘密鍵がダウンロードできます。
※秘密鍵を使うと作成したサービスアカウントを利用した操作が可能になります。無くしたり漏洩したりしないように注意しましょう。
④Google APIを有効にする
続いて、サービスアカウントによるGoogleサービスへのアクセスを有効にするための設定を行います。
Google Cloudで「APIとサービス」にアクセスし、画面上部の「+ APIとサービスを有効にする」をクリックします。

検索バーで「Google Drive API」と検索し、「有効にする」をクリックします。
同様に「Google Sheets API」と検索し、「有効にする」をクリックします。

⑤サービスアカウントにスプレッドシートの権限を付与
最後にサービスアカウントにスプレッドシートの操作権限を付与します。
対象のスプレッドシートの「︙」をクリックし、「共有」を選択します。
ユーザー追加の部分に作成したサービスアカウントのメールアドレスを入力して、権限を設定して「共有」ボタンをクリックします。

スプレッドシートの中身を操作する場合、「編集者」権限が必要になります。
ドライブ上でファイルの作成をしたい場合はドライブ上のフォルダにも同様にサービスアカウントに権限の付与が必要です。
ウマたんこれで事前準備が完了!
認証にはWorkload Identityを使った方法もあって、より権限管理を厳密にしたい場合は使ってみよう!
【実践】Pythonでスプレッドシートを操作する
では実際にPythonを使ったスプレッドシートの操作方法について見ていきましょう。
今回は以下の操作を見ていきます。
今回はスプレッドシートを操作するということで、Pythonの実行環境に”Google Colaboratory“を利用します。
“Google Colaboratory“については、以下の記事で解説しています。
Google Colaboratoryのメリットと使い方!GPU環境でPython回すならこれだ!当サイト【スタビジ】の本記事では、Googleが無償で提供する機械学習のプラットフォーム「Google Colaboratory」をメリット・デメリット・使い方について見ていきます!実際にPythonを実行していきGPUの威力を見ていきます。
Google Colaboratoryを開いたらセッションストレージに「③サービスアカウントキー作成」でダウンロードした秘密鍵(JSONファイル)をアップロードします。

ここではセッションストレージに格納するので、セッションが切れるたびにファイルは削除されます。
そのため、セッションが切れたら再度秘密鍵をアップロードするようにしましょう。
データの読み込み
Pythonで「スプレッドシート内のデータを読み込んで」みます。
まずは、Pythonでスプレッドシートを操作するために、必要なライブラリをインストールします。
!pip install gspread google-auth-oauthlib
ここでは”gspread“と”google-auth-oauthlib“をインストールします。
実際にスプレッドシートに接続します。
スプレッドシートは以下のようなものを準備します。

import gspread
from google.oauth2.service_account import Credentials
# GoogleスプレッドシートAPIに接続
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = Credentials.from_service_account_file("credentials.json", scopes=scope)
client = gspread.authorize(creds)
“Credentials.from_service_account_file“メソッドでは、サービスアカウントの秘密鍵から認証情報を取得しています。
“gspread.authorize“メソッドで取得した認証情報を使ってGoogle Sheets APIに接続するためのクライアントを作成します。
このクライアントを使ってPythonではスプレッドシートの操作を行います。
# スプレッドシートを開く
sheet = client.open("sample").sheet1
# データを読み込む
data = sheet.get_all_records()
# データを表示
for record in data:
print(record)
作成したクライアントを使ってスプレッドシートを開きます。
認証情報が適切に設定されていれば、シート内のデータを読み込み、表示されます。

またスプレッドシート名ではなくスプレッドシートのIDで接続することも可能です。
# スプレッドシートIDを使用して特定のスプレッドシートに接続
spreadsheet_id = 'your_spreadsheet_id_here'
spreadsheet = client.open_by_key(spreadsheet_id)
同名のスプレッドシートがある場合はスプレッドシートIDを使用した方が確実に接続できます。
ウマたんPythonでスプレッドシートの読み込みが出来たね!
認証が上手くいかない場合はGoogle CloudのプロジェクトがサービスアカウントやAPIで一致しているか確認しよう!
データのフィルタリングと書き込み
次に「スプレッドシートのデータを操作」について見ていきます。
まずフィルタリングして、必要な情報だけを抜き出す操作をしてみます。
# 特定の条件でデータをフィルタリング
filtered_data = [record for record in data if record['年齢'] > 40]
# フィルタリングされたデータを表示
for record in filtered_data:
print(record)
Pythonの文法を使って、”年齢”が40以上のデータを抽出します。
結果を見ると狙い通りにデータをフィルタリングできていることが確認できました。

続いて、データの追加や更新を行います。
# 特定のセルを更新
sheet.update_acell("B3", "鈴木")
#行にデータを追加
row_data = [
["T00006", "荒川", "記者", 31],
["T00007", "渡辺", "作家", 45],
["T00008", "藤田", "保育士", 29]
]
sheet.append_rows(row_data)
セルの更新はgspreadライブラリの”sheet.update_acell“メソッドを利用します。
対象のセルのアドレスと書き込みたい値を引数に設定することで、指定したセルの値を更新してくれます。
スプレッドシートに行単位でデータを追加する場合は、gspreadライブラリの”sheet.append_rows“メソッドを利用します。
行のデータをリストとして受け取ることで、スプレッドシートのデータの最後の行から追加できます。
出力結果ではデータの更新箇所及び、データの追加した結果が表示されます。

実際にスプレッドシートを見ると、データが意図した結果になっていることが確認できます。

ウマたんPythonの文法も活用することで、効率的にデータの更新が出来るね!
データの集計と可視化
次にスプレッドシートで「データの集計と可視化」を行っていきます。
サンプルデータには以下のようなデータを使います。

データを集計・可視化するために、まずはスプレッドシートのデータを取得してデータフレームに変換します。
import pandas as pd
import matplotlib.pyplot as plt
# スプレッドシートを開く
spreadsheet = client.open("sample")
# 特定のシートにアクセス
sheet = spreadsheet.worksheet("sheet2")
# スプレッドシートのデータを取得してpandasのDataFrameに変換
data = sheet.get_all_records()
df = pd.DataFrame(data)
# データの表示
print(df)
“sheet.get_all_records“メソッドではスプレッドシート内からすべてのデータを取得し、Pythonのリスト形式で返してくれます。
# 果物ごとの平均売上を計算
fruit_avg_sales = df.groupby("名前")["合計"].mean()
print("\n果物ごとの平均売上:")
print(fruit_avg_sales)
# 日別の売上金額の合計
daily_sales = df.groupby("日付")["合計"].sum()
print("\n日別の売上金額の合計:")
print(daily_sales)
“pandas“を使ってデータを集計していきます。
合計や平均といった統計情報はPythonのライブラリを使って簡単に求めることが出来ます。

Pandasについては以下の記事で詳しく解説しているので、参考にしてみて下さい。
【入門者向け】PythonのPandasの使い方・基本操作について簡単にまとめておく!当サイト【スタビジ】の本記事では、Pythonで頻繁に使われるPandasについて簡単にまとめておきたいと思います!データの読み込みや前処理や集計、可視化などによくつかわれるPandasについてしっかりおさえておきましょう!また最後にはPandasを含めたPythonの基礎文法の勉強方法についてまとめておきますよ!
続いて、データの可視化についても見ていきます。
# 日付ごとに果物の売上をプロット
daily_sales = df.groupby(["日付","名前"])["合計"].sum().unstack()
daily_sales.plot(kind='bar',stacked=True, figsize=(12, 8))
plt.title('Daily Sales')
plt.xlabel('Date')
plt.ylabel('Total Sales')
plt.grid(True)
plt.show()
可視化は”Matplotlib“を使って行います。

Matplotlibについては以下の記事で詳しく解説しているので、チェックしてみて下さい。
【5分で分かる】実データで学ぶPythonのMatplotlibの使い方まとめ!当サイト【スタビジ】の本記事では、Pythonでの可視化に非常によく利用されるMatplotlibの使い方について徹底的に見ていきます!よく使われるデータセットを使った可視化とデータコンペのデータを使った実践的な可視化をMatplotlibを使いながらやっていきますよ!データ分析においては愚直にデータを眺める作業が非常に重要なんです!
スプレッドシートに直接グラフを作ることはgspreadライブラリでは現在サポートされていないため、Matplotlibなどの可視化ライブラリを使うと良いです。
ウマたんスプレッドシートのデータの集計や可視化もPythonで簡単に!
Pythonでスプレッドシートの操作 まとめ
ここまでご覧いただきありがとうございました!
本記事では、Pythonでのスプレッドシートの操作について見ていきました。
Pythonでスプレッドシートを利用するためには認証が必要なので事前に準備しておきましょう。
以下にサービスアカウントを使う場合の手順をまとめておきます。
サービスアカウントを使って他のGoogleのAPIサービスを利用できるので、スプレッドシートと組み合わせてみましょう!
ウマたんPythonのライブラリを駆使しながらスプレッドシートの作業を楽にしていこう!
同じGoogleのサービスでGoogle Apps Scriptとスプレッドシートの自動化については以下の記事を参考にしてみて下さい。
【サンプルコード付き】GASを使った自動化を実装してみよう!当サイト【スタビジ】の本記事では、GAS(Google Apps Script)を使った自動化の方法について解説していきます。GASを使うといろんなことが自動化できます!サンプルコードを参考にGASの使い方をマスターしていきましょう!
また、より詳しくGoogleスプレッドシートを操作して業務を効率化する方法を学びたい人は以下のUdemyコースをチェックしてみてください!
また、スプレッドシートで収集したデータをデータ分析したいと思った方は、当メディアが運営する教育サービス「スタアカ(スタビジアカデミー)」の講座をチェックしてみてください。
| 【価格】 | ライトプラン:1,280円/月(全コースが受講し放題) プレミアムプラン:129,800円(通常149,800円・買い切り) |
|---|---|
| 【オススメ度】 | |
| 【サポート体制】 | |
| 【受講形式】 | オンライン形式 |
| 【学習範囲】 | 統計学・機械学習・ディープラーニングを網羅的に学ぶ 生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ SQLとPythonを組み合わせて実データを使った様々なワークを行う 実践的なビジネスフレームワークを学ぶ マーケティングの実行プラン策定 |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です!
プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1(30分×4回)を実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコースになっています!
Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!
Pythonではゲーム開発をすることも出来ます。興味がある方は以下の記事をチェックしてみて下さい。
【サンプルコード付き】初心者でもPythonでゲームを簡単に作る方法を学ぼう!当サイト【スタビジ】の本記事では、Pythonでゲームを作る方法について解説していきます。実際にコードを書きながら、Pythonでゲームを作るための基礎を学んでいきましょう!読んだ内容を、スタアカの「Python基礎」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。

