web-dev-qa-db-ja.com

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

Google Colaboratoryのノートブックに個人データをインポートする一般的な方法は何ですか?非公開のGoogleシートをインポートすることはできますか?システムファイルから読み取ることはできません。入門ドキュメントは BigQueryの使用に関するガイド にリンクしていますが、それは少し...大したことのようです。

100
Grae

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

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

これを行うには、コードセルで次のコマンドを実行します。

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

その後、ドライブファイルがマウントされ、サイドパネルのファイルブラウザでそれらを閲覧することができます。

enter image description here

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

127
Bob Smith

アップロード

from google.colab import files
files.upload()

ダウンロード

files.download('filename')

リストディレクトリ

files.os.listdir()
27
井上智文

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

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ドライブにあります。 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)
15
E G

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

  1. あなたのデータセットでgithubにリポジトリを作ります
  2. であなたのレポジトリをクローンします! git clone - 再帰的[GITHUB LINK REPO]
  3. あなたのデータがどこにあるかを見つけてください(!lsコマンド)
  4. あなたが通常のjupyterノートブックでそれをするようにパンダでファイルを開きます。
6
Rafał B.

これにより、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ドライブのすべての内容を確認できます。

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

6
yl_low

ステップ1 - GoogleドライブをCollaborativeにマウントします

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

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

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

完了しました。

4
Garima Jain

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)
3
delica

共同研究室の左側のバーには "Files"というセクションがあります。そこにあなたのファイルをアップロードして、このパスを使ってください

"/content/YourFileName.extension"

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

2
Vivek Solanki

私がこれまでに見つけた最も簡単な解決策は、中小サイズのCSVファイルに最適です。

  1. Gist.github.comに秘密のGistを作成し、あなたのファイルをアップロード(またはその内容をコピー&ペースト)します。
  2. Raw ビューをクリックして、生ファイルのURLをコピーします。
  3. pandas.read_csv(URL)を呼び出すときに、コピーしたURLをファイルアドレスとして使用します。

これは、テキストファイルを1行ずつまたはバイナリファイルで読み取る場合にはうまくいくかどうかわからない。

2

Google.colabとPyDriveの https://github.com/ruelj2/Google_drive で私の実装を使うこともできます。

!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)
1
Jean-Christophe

それは解決されました、ここで詳細を見つけて、以下の機能を使用してください: 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
Yasser Mustafa

あなたがコードなしでこれをしたいなら、それはかなり簡単です。私の場合はあなたのフォルダをzipします。

dataset.Zip

それからColabでこのファイルを置きたいフォルダを右クリックしてUploadを押してこのZipファイルをアップロードしてください。その後、このLinuxコマンドを書いてください。

!unzip <your_Zip_file_name>

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

0
Arham Aalam

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
Ravi G