web-dev-qa-db-ger.com

So laden Sie eine csv-Datei (und verwenden Sie sie) von Google Drive in das Google Collaboratory

Ich wollte Python ausprobieren, und Google Colaboratory schien die einfachste Option. Ich habe einige Dateien in meinem Google-Laufwerk und wollte sie in Google Colaboratory hochladen. Hier ist der Code, den ich verwende:

!pip install -U -q PyDrive

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)

# 2. Create & upload a file text file.
uploaded = drive.CreateFile({'xyz.csv': 'C:/Users/abc/Google Drive/def/xyz.csv'})
uploaded.Upload()
print('Uploaded file with title {}'.format(uploaded.get('title')))

import pandas as pd
xyz = pd.read_csv('Untitled.csv')

Grundsätzlich wollte ich für den Benutzer "abc" die Datei xyz.csv aus dem Ordner "def" ..__ hochladen. Ich kann die Datei hochladen, aber wenn ich nach dem Titel frage, heißt es, der Titel lautet "Untitled" . Wenn ich nach der ID der hochgeladenen Datei frage, ändert sich diese jedes Mal, sodass ich die ID nicht verwenden kann.

Wie lese ich die Datei? und einen richtigen Dateinamen setzen ???

xyz = pd.read_csv('Untitled.csv') doesnt work
xyz = pd.read_csv('Untitled') doesnt work
xyz = pd.read_csv('xyz.csv') doesnt work

Hier sind einige andere Links, die ich gefunden habe ..

Wie importiere und lese ich ein Regal oder eine Numpy-Datei in Google Colaboratory?

Lokale Datendateien in das Colaboratory laden

12
Akhil

Um eine CSV-Datei von meinem Google-Laufwerk in das Collaboratory einzulesen, musste ich die folgenden Schritte ausführen:

1) Ich musste zunächst das Labor für den Zugriff auf mein Google-Laufwerk mit PyDrive autorisieren. Ich habe ihr Codebeispiel dafür verwendet. (unten eingefügt)

2) Ich musste mich auch bei drive.google.com anmelden, um die Ziel-ID der Datei zu finden, die ich herunterladen wollte. Ich habe dies gefunden, indem ich mit der rechten Maustaste auf die Datei geklickt und den freigegebenen Link für die ID kopiert habe. Die ID sieht ungefähr so ​​aus: '1BH-rffqv_1auzO7tdubfaOwXzf278vJK' 

3) Dann lief ich download.GetContentFile ('myName.csv') - gebe den gewünschten Namen ein (in Ihrem Fall ist es xyz.csv) 

Das scheint für mich zu funktionieren!

Ich habe den Code verwendet, den sie in ihrem Beispiel angegeben haben:

# Code to read csv file into colaboratory:
!pip install -U -q PyDrive
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)

#2. Get the file
downloaded = drive.CreateFile({'id':'1BH-rffqv_1auzO7tdubfaOwXzf278vJK'}) # replace the id with id of file you want to access
downloaded.GetContentFile('xyz.csv')  

#3. Read file as panda dataframe
import pandas as pd
xyz = pd.read_csv('xyz.csv') 
15
Cendria

Die Dateierstellung nimmt einen Dateikörper in seinem ersten Parameter. Wenn Sie in der Dokumentation nach file create suchen, gibt es eine Reihe von Feldern, die Sie ausfüllen können. In dem folgenden Beispiel würden Sie sie getrennt durch Komma file_metadata hinzufügen.

file_metadata = {'name': 'photo.jpg'}
media = MediaFileUpload('files/photo.jpg',
                        mimetype='image/jpeg')
file = drive_service.files().create(body=file_metadata,
                                    media_body=media,
                                    fields='id').execute()

Ich schlage vor, Sie lesen den Abschnitt file upload der Dokumentation, um eine bessere Vorstellung davon zu bekommen, wie der Upload funktioniert und welche Dateien von Google Drive gelesen werden können. Ich bin nicht sicher, ob Sie dadurch Zugriff auf Google Collaborate haben.

Möglicher Fix für Ihren Code.

Ich bin kein Python-Dev, aber ich schätze, Sie könnten Ihren Titel damit festlegen.

uploaded = drive.CreateFile({'xyz.csv': 'C:/Users/abc/Google Drive/def/xyz.csv',
                             'name': 'xyz.csv'})
0
DaImTo

Okay, ich bin mir ziemlich sicher, dass ich ziemlich spät bin, aber ich möchte das hier gerne veröffentlichen, nur für den Fall ... Ich denke, der einfachste Weg, wie Sie das tun könnten, ist

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

Daraufhin wird ein Link erstellt. Klicken Sie darauf und melden Sie sich mit Google OAuth an. Fügen Sie den Schlüssel in die Colab-Zelle ein, und Sie sind verbunden.

checken Sie die Liste der verfügbaren Dateien in der Seitenleiste auf der linken Seite aus und kopieren Sie den Pfad der Datei, auf die Sie zugreifen möchten. Lesen Sie es wie jede andere Datei.

0
gavin