Python プログラミング

Google Drive上のファイルをGoogle Colabで読む方法【Dr. Python#3】

icon
historoid

今回はGoogle Driveにあるファイルの読み込み手順の解説です。

これができれば、自分のファイルを自由に読めますね。

Google Drive上のファイルをGoogle Colabで読む方法

前回までのおさらい

前回はcatコマンドを紹介しましたね。忘れてしまっていたら、以下のリンクからちょっと見てきてください。

おさらい
icon
Google Colabでデータサイエンスをはじめよう【Dr. Python#2】

はじめてコードを書いてみましょう。Google Colab内にあるデータをコマンド操作で見てみます。

今回の到達目標

  1. エクセルファイルを読み込む。
  2. 編集したファイルを保存する。
  3. Google ColabとGoogle Driveを連携する。
  4. パスの概念を理解する。
  5. Pandasを操作してみる。

盛り沢山ですね!! 頑張っていきましょう。

Google DriveとGoogle Colabを連携する

アカウントの作成時にGoogle DriveとGoogle Colabを連携していましたが、あれは「2つのサービスを使うよ」くらいの意味です。

今回説明するのは、「2つのサービスが稼働しているサーバーをつなげるよ」という具体的な話になります。

たった2行で完了

ではいつもどおり、真似してGoogle Colabに打って実行してください。

from google.colab import drive
drive.mount('/content/drive')

すると下のような文字列が返ってきます。

URLをクリックしましょう。

すると別のページに遷移します。

連携したいGoogleアカウントを選んでください(アカウントが複数あればの話です)。

また画面が切り替わります。

許可してください。

この文字列をコピーして、Google Colabに戻り、先ほどの空欄にペーストしてエンター。

これでOKです。

Google ColabからGoogle Driveが見れるようになりました。

この作業をマウントといいます。

マウントされているかの確認

!ls
# drive  sample_data

ほら!! driveフォルダが増えているでしょう。

この中にあなたのGoogle Driveの中身が入っていますよ。

lsコマンドを使って好きに見てください。

パスを理解しよう

プログラミング初心者を悩ませる「パス」についてちょっと話しておきましょう。

パスとは何か

とくに難しくないのですが、そのファイルやフォルダの位置を示す文字列のことです。

「ドキュメント」の中の「実験」の中の「2020年4月」の中の「移植実験.exls」ファイルをパスで示すと、ドキュメント/実験/2020年4月/移植実験.exlsとなります。

これがパスです。難しくないでしょ?

絶対パスと相対パス

これが初心者には難しいかもしれません。

絶対パスは、一番根幹にあるフォルダ(ルートディレクトリ)からそのファイルまでのパスです。

なので長くなりますが、道順がしっかり書かれているともいえます。

一方、相対パスは自分の位置から見たそのファイルまでのパスです。

「自分の位置???」と思うでしょうが、ここが初心者には難しいポイントです。

自分の位置とは「そのコマンドが実行された場所」を指します。

これまでさんざんlsコマンドを実行してきましたが、lsコマンドの返り値は「そのフォルダの中身」ですよね。つまり「その場所にあるファイルやフォルダ」を表示させているわけですね。

したがって相対パスでは「1つ下の階層」や「上の上の階層」など、コマンドが実行された位置から見た標的のパスを指定することができます。

pwdコマンドで自分の位置がわかる

相対パスを理解したら、自分の位置が知りたくなりましたよね。

!pwd
# /content

これで自分の位置が絶対パスで示されます。

今はcontentというフォルダの中にいます。

!マークの意味

これまで触れてきませんでしたが、!マークにも意味があります。

lspwdはPythonのコマンドではありません。Linuxコマンドと呼ばれるPythonとは別種のコマンドです。

Google ColabはPythonのコードを実行するための環境ですが、!マークを付けることでLinuxコマンドも実行してくれているのです。

cdコマンドで自分の位置を変える

では、自分の位置を変えましょう。

!cd sample_data/

これで本来はsample_dataフォルダの中に移動できるのですが、Google Colabではできません

あんまり自由に移動されると、サーバーを提供する側にはリスクでしかないためです(データが破壊されるかもしれません)。

なお、もしcdコマンドで移動できていれば、lsコマンドの結果が変わってsample_data内のファイル名が返ってくるでしょう(先ほどまではsample_dataというフォルダ名が返ってきていました)。

Pandasでエクセルファイルを読み込む

パスを理解したところで、エクセルファイルの読み込みに移りましょう。

まずはエクセルファイルを用意しよう

手元にある適当なエクセルファイルをGoogle Driveに入れておいてください。

そんな急にエクセルファイルを用意できないよ、という方は厚生労働省の統計ファイルをダウンロードしましょう。ダウンロードしたらGoogle Driveに入れてください。

エクセルファイルを読み込もう

import pandas as pd
df = pd.read_excel('/content/drive/My Drive/xxxx.xlsx')
# xxxx.xlsxはあなたのエクセルファイルの名称

これでOKです。あなたのエクセルファイルの中身は、dfという名前に変わって読み込まれました

df

dfとだけ入れて実行すれば、エクセルファイルの中身が見れるはずです。

エラーが出たら

この段階でエラーが出たら、十中八九、写し間違いです。

よく確認してください。それでもわからなかったらコピペして、最後のxxxxを書き換えてください。

あるいは拡張子が.xlsxじゃなくて.xlsかもしれません。何度も確認してください。

それでもエラーが消えないなら、無視してこの項目を飛ばしてください。完璧にこなす必要はありません。

「CSVファイルの読み込み」でも同じ方法で読み込むので、そこでもう一度試してみましょう。

Pandasの機能に触れてみよう

では、ここで高機能ライブラリであるPandasの機能の一端に触れてみましょう。

df.describe()

これで列ごとの要約統計量が表示されます。サンプルサイズ、平均値、標準偏差、25%ごとのパーセンタイルなどが返ってきます。

たった一行でここまでのことができます。

エクセルで同じことをしようとしたら結構大変ですよね?

Pandasとは何か

import pandas as pd

このコマンドは「これからPandasの機能を使うよ」という意味です。

Pandasはエクセルのような表計算に特化したライブラリ(機能群)です。したがってPythonでデータ解析をしようと思ったら、Pandasを避けて通ることはできません

わざわざimportと書くのは、Pythonにはじめから備わった機能ではないためです。

このように、デフォルトでないライブラリを外部ライブラリ、もとからPythonに備わっているライブラリを標準ライブラリといいます。

そして外部ライブラリの方が圧倒的に多いです。

つまり、デフォルトのPythonは最低限の標準ライブラリで軽量化しており、ユーザーの必要に応じて外部ライブラリで補強する方法をとっているといえます。

Pandasの機能

Pandasの機能は多岐にわたり、一冊の分厚い本が書けます。

このテキストは分厚いですが、Pandasの使い方を網羅しています。私はこれで勉強しました。もし業務でPandasを使う必要があるなら、この本の購入をオススメします。

Pythonプログラミング自体がはじめてならこの本をオススメします。

はじめに紹介した本は、本当にPandasに特化した本です。ここからPythonプログラミングやデータ解析の手順を学ぶには不適当です。

2冊目に紹介した方は、さまざまなライブラリの基本的な使い方やグラフの描き方、統計処理の手順なども丁寧に解説してくれます。

なおPandas公式のドキュメントはこちらです。英語ですが、難しくないので詳しく知りたいときは公式ドキュメントがオススメです。

SciPyとは何か

SciPyについてもちょっと説明します。

SciPyとはPythonの科学演算ライブラリ群のことで、行列計算、微分、機械学習などに特化した強力なライブラリが揃っています。

Pandasもその中の1つです。

CSVファイルの読み込み

先ほどはエクセルファイルを読み込みましたが、CSVファイルも読み込んでみましょう。

CSVファイルもエクセルファイルのようなもので、カンマ区切りでデータを分けています。

エクセルファイルと違って、テキストデータなので非常に軽量です。

Google Colab上のサンプルデータを読み込もう

ではsample_dataフォルダにあったCSVファイルを読み込んでみましょう。

df = pd.read_csv('/content/sample_data/california_housing_train.csv')

dfというのはデータフレームの略で、Pandasでは表形式のデータ構造をデータフレームといいます。エクセルではテーブルといわれています。

先ほどエクセルファイルを読み込むときにも、dfと設定したので今度はdf_csvという名前にしてもいいですよ。

同じ名前(変数名)にすると上書きされるので、先ほどのエクセルファイルの中身は消えることになります。

df

これで実行すればデータフレームの中身を見ることができます。

どうでしょう?結構簡単ですよね。

Pandasでのファイルの書き出し

今回はまだやっていませんが、データフレームをいじったら、保存したいですよね。

以下のコードでファイルの書き出しができます。

# CSVファイルとして保存したい場合
df.to_csv('/content/drive/My Drive/xxxx.csv')

# Excelファイルとして保存したい場合
df.to_excel('/content/drive/My Drive/xxxx.xlsx')

注意

Google Driveに保存しないとデータは消えてしまいます。

Google Colab上にデータを残していても、そのデータは消えます。Google Colabは一定時間ごとにリセットされるためです。

データを保存したいときは必ずGoogle Driveのパスを指定してください。


historoid

今回はここまでです!! ちょっと長かったですね。

でも着実に進歩していますよ。

これでPandasでエクセルファイルを読み込むところまで終わりましたね。

あとはPandasの基本操作ができるようになれば統計処理も楽に終わりますよ!!

-Python, プログラミング

© 2021 historoidのノート