Google Colaboratory로 데이터 가져 오기


156

비공개 데이터를 Google Colaboratory 노트북으로 가져 오는 일반적인 방법은 무엇입니까? 비공개 Google 시트를 가져올 수 있습니까? 시스템 파일에서 읽을 수 없습니다. 소개 문서는 BigQuery 사용 에 대한 가이드와 연결되어 있지만 조금은 ...

답변:


197

https://colab.research.google.com/notebooks/io.ipynb : 로컬 파일 업로드 / 다운로드 및 드라이브 및 시트와의 통합을 보여주는 공식 노트북

파일을 공유하는 가장 간단한 방법은 Google 드라이브를 마운트하는 것입니다.

이렇게하려면 코드 셀에서 다음을 실행하십시오.

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

드라이브에 액세스하려면 "Google 파일 스트림"허용 링크를 방문하라는 메시지가 표시됩니다. 그런 다음 Colab의 노트북에 입력해야하는 긴 영숫자 인증 코드가 표시됩니다.

그 후 드라이브 파일이 마운트되고 측면 패널의 파일 브라우저로 파일을 찾아 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

다음은 전체 예제 노트북입니다.


3
드라이브 및 Google Cloud Storage에 대한 레시피도 포함 된 번들 예제 노트북에 시트 예제가 포함되었습니다. colab.research.google.com/notebook#fileId=/v2/external/…
Bob Smith

9
내 드라이브에서 특정 폴더를 가져올 수 있습니까? 나는 다른 사람이 colab을 공유하고있어, 나는 중요한 정보가 포함 된 모든 내 구글 드라이브에 대한 액세스 권한을 부여하지 않으려는
yellow01

4
노트북을 공유하면 드라이브의 파일이 공유되지 않습니다. 사용자는 여전히 별도의 자체 드라이브를 마운트해야합니다. 필요한 경우 해당 사용자와 파일을 공유 할 수 있지만 모든 파일은 일반 드라이브 ACL에 의해 제어됩니다. Colab 노트북을 공유하면 해당 노트북에서 참조 된 드라이브 파일이 아니라 노트북 만 공유합니다.
밥 스미스

마운트에 성공했지만 왼쪽의 파일 아래에 파일 목록이 표시되지 않습니다. 어떤 제안?
Swapnil B.

3
탑재 된 Google 드라이브의 데이터를 교육하지 마십시오. 먼저 데이터를 로컬 드라이브에 복사 한 후 학습하십시오. 거의 10 배 빨라질 것입니다. 빠른 복사를 위해 데이터 파일이 큰 아카이브이거나 여러 개의 작은 아카이브인지 확인하십시오. 예를 들면 :-100000 개의 이미지 파일을 사용하지 마십시오. 각각 1000 개의 이미지로 100 개의 아카이브를 사용하십시오. 이 방법으로 구글 드라이브에 업로드하는 것이 더 빠르며 구글 드라이브에서 colab으로의 복사도 마찬가지입니다.
saurabheights

47

업로드

from google.colab import files
files.upload()

다운로드

files.download('filename')

디렉토리 목록

files.os.listdir()

6
업로드 된 파일이 사용자의 Google 드라이브 또는 노트북이 연결된 서버에 저장되어 있습니까?
RodrikTheReader

1
이 파일들은 임시가 아닌가?
Acumenus

업로드에 대한 논쟁이 있습니까?
user25004

이 답변은 맨 위에 있어야합니다. 문제는 Google 드라이브를 마운트하지 않고 데이터를 가져 오는 것에 관한 것입니다.
Fernando Wittmann

18

googledrive에서 데이터를 가져 오는 간단한 방법-이렇게하면 사람들이 시간을 절약 할 수 있습니다 (Google이이 단계를 명시 적으로 나열하지 않는 이유를 모릅니다).

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()파이어 폭스 나 사파리, 크롬 만도에서 작동하지 않습니다. 참조 여기
5agado의

15

1 단계-Google 드라이브를 공동 작업에 마운트

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

2 단계 : 이제 왼쪽 창 (파일 탐색기)에 Google 드라이브 파일이 표시됩니다. 가져와야 할 파일을 마우스 오른쪽 버튼으로 클릭하고 çopy path를 선택하십시오. 그런 다음이 복사 된 경로를 사용하여 팬더에서 평소와 같이 가져옵니다.

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

끝난!


명확성과 간결함에서 이기고 동등한 효과가 있습니다. 이 작업을 수행하는 훨씬 더 관련된 방법에는 이점이 없습니다.
Elroch

7

내가 만든 가장 간단한 방법은 다음과 같습니다.

  1. 데이터 세트로 github에 리포지토리 만들기
  2. !로 저장소를 복제하십시오. 자식 복제-재귀 [GITHUB LINK REPO]
  3. 데이터가 어디에 있는지 확인하십시오 (! ls 명령)
  4. 일반적인 jupyter 노트북에서와 마찬가지로 팬더가있는 파일을 엽니 다.

안녕하세요,이 gapminder = pd.read_csv ( "Data-Analysis / pairplots / data / gapminder_data.csv")를 사용하면 단 2 개의 관찰만으로 "version https : // .."변수 만받습니다
Mukul Sharma

2
단일 파일 크기가 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'디렉토리가 아닌 루트 디렉토리에 직접 업로드했는지 확인하십시오. 또한 "content"를 제거하고 다음과 같은 파일 이름을 쓸 수 있습니다.pd.read_csv('Forbes2015.csv');
Vivek Solanki

여전히 작동하지 않으면 오류 메시지를 알려주시겠습니까?
Vivek Solanki

@flashliquid 필요하지 않습니다. '/'없이도 작동합니다. colab에서 테스트 할 수 있습니다.
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)

2

나와 같은 사람들이 Google에서 'upload file colab'키워드를 사용하는 경우 :

from google.colab import files
uploaded = files.upload()

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는 무엇입니까?"
Parseltongue

git repo에서 언급했듯이 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')

이 코드를 실행하고 outputlink를 통과 한 다음 암호문을지나 상자로

복사 할 때 다음과 같이 복사 할 수 있습니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 경로를 복사하십시오. *** "/ 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 경로이고 두 번째 경로는 colab 루트 폴더입니다.

이런 식으로 큰 데이터에 대한 훈련이 더 빠릅니다.


0

해결되었으며 여기에서 세부 정보를 찾고 아래 기능을 사용하십시오. /programming/47212852/how-to-import-and-read-a-shelve-or-numpy-file-in-google -협업 / 4 / 467113 # 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 드라이브에서 노트북으로 파일을 가져 오는 방법 중 하나입니다.

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

데이터 세트 크기가 25MB보다 작은 경우 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.