Google Colaboratoryにデータをインポートする


回答:


197

ローカルファイルのアップロード/ダウンロードとドライブおよびシートとの統合を示す公式のノートブックの例は、https//colab.research.google.com/notebooks/io.ipynbから入手できます。

ファイルを共有する最も簡単な方法は、Googleドライブをマウントすることです。

これを行うには、コードセルで以下を実行します。

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

ドライブにアクセスするには、「Google Files Stream」を許可するリンクにアクセスするように求められます。その後、長い英数字の認証コードが表示され、Colabのノートブックに入力する必要があります。

その後、ドライブファイルがマウントされ、サイドパネルのファイルブラウザーで参照できます。

ここに画像の説明を入力してください

これが完全なノートブックの例です


3
:シートの例は、現在も、ドライブとGoogleのクラウドストレージのためのレシピ含まれていることをバンドル例のノートブックに含まれているcolab.research.google.com/notebook#fileId=/v2/external/...
ボブ・スミス

9
ドライブに特定のフォルダをインポートできますか?私はこのコラボを他の誰かと共有していますが、機密情報を含むすべてのGoogleドライブへのアクセスを許可したくないのです
yellow01

4
ノートブックを共有すると、ドライブ内のファイルは共有されません。ユーザーは引き続き、別のドライブをマウントする必要があります。必要に応じてそのユーザーとファイルを共有できますが、そのすべては通常のドライブACLによって制御されます。Colabノートブックを共有すると、ノートブックのみが共有され、そのノートブックで参照されているドライブファイルは共有されません。
ボブ・スミス

マウントは成功しましたが、左側のファイルの下にファイルリストが表示されません。助言がありますか?
Swapnil B.18年

3
マウントされたGoogleドライブのデータでトレーニングしないでください。最初にデータをローカルドライブにコピーしてから、それをトレーニングします。ほぼ10倍速くなります。コピーを高速化するには、データファイルが大きなアーカイブか、多数の小さなアーカイブであることを確認してください。例:-100000画像ファイルを使用しないでください。それぞれ1000画像の100アーカイブを使用します。このように、Googleドライブへのアップロードも高速になり、Googleドライブからコラボへのコピーも高速になります
saurabheights

47

アップロードする

from google.colab import files
files.upload()

ダウンロード

files.download('filename')

リストディレクトリ

files.os.listdir()

6
アップロードされたファイルは、ユーザーのGoogleドライブまたはノートブックが接続されているサーバーに保存されていますか?
RodrikTheReader

1
これらのファイルは短命ではありませんか?
Acumenus 2018

アップロードについての議論はありますか?
user25004

この答えが一番上になるはずです。問題は、Googleドライブをマウントするのではなく、データをインポートすることです。
フェルナンドウィットマン

18

あなたのグーグルドライブからデータをインポートする簡単な方法-これを行うことは人々の時間を節約します(グーグルがこのステップバイステップで明示的にリストしない理由を知らないでください)。

PYDRIVEのインストールと認証

     !pip install -U -q PyDrive ## you will have install for every colab session

     from pydrive.auth import GoogleAuth
     from pydrive.drive import GoogleDrive
     from google.colab import auth
     from oauth2client.client import GoogleCredentials

     # 1. Authenticate and create the PyDrive client.
     auth.authenticate_user()
     gauth = GoogleAuth()
     gauth.credentials = GoogleCredentials.get_application_default()
     drive = GoogleDrive(gauth)

アップロード

ローカルドライブからデータをアップロードする必要がある場合:

    from google.colab import files

    uploaded = files.upload()

    for fn in uploaded.keys():
       print('User uploaded file "{name}" with length {length} bytes'.format(name=fn, length=len(uploaded[fn])))

実行すると、ファイルの選択ボタンが表示されます-アップロードファイルを見つけます-[開く]をクリックします

アップロードすると、次のように表示されます。

    sample_file.json(text/plain) - 11733 bytes, last modified: x/xx/2018 - %100 done
    User uploaded file "sample_file.json" with length 11733 bytes

ノートブックのファイルを作成

データファイルが既にgdriveにある場合は、この手順にスキップできます。

今それはあなたのグーグルドライブにあります。Googleドライブでファイルを見つけて右クリックします。[共有可能なリンク]をクリックします。次のウィンドウが表示されます:

    https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn

コピー-'29PGh8XCts3mlMP6zRphvnIcbv27boawn'-これはファイルIDです。

ノートブックで:

    json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})

    json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.

データをノートブックにインポート

ノートブックにアップロードしたデータをインポートするには(この例のjsonファイル-ロード方法はファイル/データタイプによって異なります-.txt、.csvなど):

    sample_uploaded_data = json.load(open('sample.json'))

これで、データを確認するために印刷できます。

    print(sample_uploaded_data)

1
それは指摘する価値があるのアップロードを経由して、提案をgoogle.colab.files.upload()唯一のFirefoxやSafariの、クロムでもない上で動作するようには思えません。こちらをご覧ください
5agado 2018

15

ステップ1-GoogleドライブをCollaboratoryにマウントする

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

ステップ2-これで、左側のペイン(ファイルエクスプローラー)にGoogleドライブファイルが表示されます。インポートする必要があるファイルを右クリックし、コピーのパスを選択します。次に、このコピーしたパスを使用して、通常どおりにパンダにインポートします。

import pandas as pd
df=pd.read_csv('gdrive/My Drive/data.csv')

できた!


明快さと簡潔さに勝ち、同等の効果があります。これを行うためのより複雑な方法には利点がないと思います。
Elroch

7

私が作った最も簡単な方法は:

  1. データセットを使用してgithubにリポジトリを作成する
  2. リポジトリを!git clone --recursive [GITHUB LINK REPO]
  3. データの場所を見つける(!lsコマンド)
  4. 通常のjupyterノートブックで行うように、パンダでファイルを開きます。

こんにちは、このgapminder = pd.read_csv( "データ解析/ pairplots /データ/ gapminder_data.csvは")私は取得しています"バージョンのhttps:// .."を持つ変数のみ2 observatonsと
ムクール・シャーマ

2
このソリューションは、1つのファイルサイズがgithubで許可されている制限(20MBの場合は無料バージョン)を超えている場合には機能しません。
Akshay Soam

7

これにより、Googleドライブを介してファイルをアップロードできます。

以下のコードを実行します(これは以前にどこかで見つかりましたが、ソースを再度見つけることはできません-それを書いた人へのクレジットです!):

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse

from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass

!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

表示される最初のリンクをクリックすると、Googleにログインするように求められます。その後、別のものが表示され、Googleドライブへのアクセス許可を求めます。

次に、これを実行して「drive」という名前のディレクトリを作成し、Googleドライブをそれにリンクします。

!mkdir -p drive
!google-drive-ocamlfuse drive

!ls今実行すると、ディレクトリドライブが作成され、実行する!ls driveと、Googleドライブのすべてのコンテンツを表示できます。

たとえば、Googleドライブのabc.txtと呼ばれるフォルダにファイルを保存ColabNotebooksすると、パス経由でアクセスできるようになりますdrive/ColabNotebooks/abc.txt



5

共同ラボの左側のバーには、「ファイル」というセクションがあります。そこにファイルをアップロードし、このパスを使用します

"/content/YourFileName.extension"

例: pd.read_csv('/content/Forbes2015.csv');


2
'sample_data'ディレクトリではなく、ルートディレクトリに直接アップロードしたことを確認してください。:また、次のような「コンテンツ」とだけ書き込みファイル名削除することができますpd.read_csv('Forbes2015.csv');
のVivek Solanki

それでも機能しない場合は、エラーメッセージを教えてください。
Vivek Solanki

@flashliquid必要ありません。「/」がなくても機能します。コラボでテストできます。
Vivek Solanki

3

私がこれまでに見つけた最も簡単なソリューションは、中小規模のCSVファイルに最適です。

  1. gist.github.comに秘密の要旨を作成し、ファイルをアップロード(またはコンテンツをコピーして貼り付け)します。
  2. Rawビューをクリックし、RawファイルのURLをコピーします。
  3. 呼び出すときに、コピーしたURLをファイルアドレスとして使用します pandas.read_csv(URL)

これは、テキストファイルを行単位またはバイナリファイルで読み取る場合に機能する場合と機能しない場合があります。


1
秘密の要旨は非公開ではないことを発見するのは難しいため、このアプローチを使用する場合は注意が必要です。
Grae

2

Dropboxからすばやく簡単にインポート:

!pip install dropbox
import dropbox
access_token = 'YOUR_ACCESS_TOKEN_HERE' # https://www.dropbox.com/developers/apps
dbx = dropbox.Dropbox(access_token)

# response = dbx.files_list_folder("")

metadata, res = dbx.files_download('/dataframe.pickle2')

with open('dataframe.pickle2', "wb") as f:
  f.write(res.content)


1

また、https: //github.com/ruelj2/Google_driveでgoogle.colabとPyDriveに私の実装を使用することもできます。

!pip install - U - q PyDrive  
import os  
os.chdir('/content/')  
!git clone https://github.com/ruelj2/Google_drive.git  

from Google_drive.handle import Google_drive  
Gd = Google_drive()  

次に、Googleドライブディレクトリ内のすべてのファイルをロードする場合は、

Gd.load_all(local_dir, drive_dir_ID, force=False)  

または単に特定のファイル

Gd.load_file(local_dir, file_ID)

この場合、「drive_dir_ID」とは何ですか?
パーセルタング2018

gitリポジトリで述べたように、drive_dir_IDは、リクエストされたディレクトリの対応するGoogleドライブIDです。詳細については、github.com/ruelj2/Google_driveを確認してください。明確な使用例もあります。
Jean-Christophe

1

@Vivek Solankiが述べたように、共同作業ダッシュボードの「ファイル」セクションにもファイルをアップロードしました。ファイルがアップロードされた場所をメモしてください。私にとって、 train_data = pd.read_csv('/fileName.csv')働いた。


1

Google Colabsで初めての場合は、

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

これらのコードを実行し、出力リンクを通過し、パスフレーズを通過してボックスへ

コピーするときは、次のようにコピーできます。ファイルを右クリックしてパスをコピーします***「/ content」を削除することを忘れないでください

f = open("drive/My Drive/RES/dimeric_force_field/Test/python_read/cropped.pdb", "r")

1
  1. あなたは以下を実行することでGoogleドライブにマウントすることができます

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

  2. その後、トレーニングのために、gdriveからcolabのルートフォルダーにデータをコピーします。

!cp -r '/content/drive/My Drive/Project_data' '/content'

ここで、最初のパスはgdriveパスで、2番目はcolabルートフォルダーです。

この方法では、大きなデータに対してトレーニングが速くなります。


0

それは解決されました、ここで詳細を見つけて、以下の関数を使用してください:https : //stackoverflow.com/questions/47212852/how-to-import-and-read-a-shelve-or-numpy-file-in-google -colaboratory / 49467113#49467113

from google.colab import files
import zipfile, io, os

    def read_dir_file(case_f):
        # author: yasser mustafa, 21 March 2018  
        # case_f = 0 for uploading one File and case_f = 1 for uploading one Zipped Directory
        uploaded = files.upload()    # to upload a Full Directory, please Zip it first (use WinZip)
        for fn in uploaded.keys():
            name = fn  #.encode('utf-8')
            #print('\nfile after encode', name)
            #name = io.BytesIO(uploaded[name])
        if case_f == 0:    # case of uploading 'One File only'
            print('\n file name: ', name)
            return name
        else:   # case of uploading a directory and its subdirectories and files
            zfile = zipfile.ZipFile(name, 'r')   # unzip the directory 
            zfile.extractall()
            for d in zfile.namelist():   # d = directory
                print('\n main directory name: ', d)
                return d
    print('Done!')

0

これは、Googleドライブからノートブックにファイルをインポートする1​​つの方法です。

jupyterノートブックを開き、以下のコードを実行して認証プロセスを完了します

!apt-get install -y -qq software-properties-common python-software-properties   module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret=  {creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

上記のコードで完了したら、以下のコードを実行してGoogleドライブをマウントします

!mkdir -p drive
!google-drive-ocamlfuse drive

Googleドライブからノートブックへのファイルのインポート(例:Colab_Notebooks / db.csv)

Colab_Notebooksフォルダー内のデータセットファイルで、その名前はdb.csvとしましょう

import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")

それが役に立てば幸い


0

コードなしでこれを実行したい場合は、非常に簡単です。私の場合はフォルダを圧縮してください

dataset.zip

Colabでこのファイルを配置するフォルダを右クリックし、[アップロード]を押してこのzipファイルをアップロードします。その後、このLinuxコマンドを記述します。

!unzip <your_zip_file_name>

データが正常にアップロードされていることがわかります。


0

データセットのサイズが25 MB未満の場合、CSVファイルをアップロードする最も簡単な方法は、GitHubリポジトリから取得することです。

  1. リポジトリのデータセットをクリックします
  2. 生の表示ボタンをクリックします
  3. リンクをコピーして変数に格納する
  4. 変数をPandas read_csvにロードしてデータフレームを取得します

例:

import pandas as pd
url = 'copied_raw_data_link'
df1 = pd.read_csv(url)
df1.head()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.