Google Colaboのセットアップとデータ読み書き


## ハイライト
**google driveのマウント**

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

```
!ls drive/MyDrive/
```

**google drive上のデータ読み込み**

```python
import pandas as pd
df = pd.read_csv('drive/MyDrive/ML/Pytorch-sample-luna/luna_sample_candidates.csv')
```

**google drive上のpythonモジュールの読み込み**

```python
ROOT_PATH = 'drive/MyDrive/ML/pytorch-sample-luna/'
sys.path.append(ROOT_PATH)

import dsets
```

**外部データを直接Driveにダウンロードする**

```python
!wget -P 'drive/MyDrive/ML/pytorch-sample-luna/' 'https://zenodo.org/record/3723295/files/annotations.csv?download=1'
```



## セットアップ
### Google Colaboratory Appの追加
左上の「新規」> 「その他」> 「アプリを追加」でアプリを追加。(添付写真ではすでに追加してある)

![Screen Shot 2021-11-27 at 22.44.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/492488eb-cd7e-c52c-056c-bcfca4f7fc3a.png)

![Screen Shot 2021-11-27 at 22.45.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/46c67531-4aa7-0ce2-e660-98b72d12942d.png)

## IO周り
### Google DriveとColabを連携させる

mountさせる

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

![Screen Shot 2021-11-27 at 22.50.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/6cb33179-7b47-a008-c11a-11843f5a1c4b.png)

認証・認可を求められるので指示に従って入力
![Screen Shot 2021-11-27 at 22.50.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/d5226f90-6880-9ac0-b46a-01df34d1706d.png)
![Screen Shot 2021-11-27 at 22.51.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/42fef26e-bdd5-47d3-d9e3-1f9c3f8163f3.png)
(以下省略)

成功するとMountedと表示される
![Screen Shot 2021-11-27 at 22.52.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/fd8f9d47-44da-3ec9-9297-50f6f6e53ace.png)

試しにlsコマンドを実行するとdriveが表示されている
![Screen Shot 2021-11-27 at 22.53.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/2d22cca3-9f40-8d15-afe6-8d22aa4d8f72.png)



### Google Drive上のCSVファイルの読み込み
適当なCSVファイルを、Colaboと同じフォルダに入れる
![Screen Shot 2021-11-27 at 22.58.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/e67daee4-508a-a49c-3ec5-6900f3628487.png)

Colab側からCSVが見えるか確認

```shell
!ls drive/MyDrive/ML/pytorch-sample-luna
```
![Screen Shot 2021-11-28 at 11.57.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/396419d6-bd58-288c-ccce-46d8b0a2ce82.png)

Pandasでパスを指定してインポート(パスは適宜変える)

```python
import pandas as pd
df = pd.read_csv('drive/MyDrive/ML/Pytorch-sample-luna/luna_sample_candidates.csv')

df
```
![Screen Shot 2021-11-27 at 23.04.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/01235710-2898-5723-ed4d-ab7d7c0abd64.png)

### Google Drive上にCSVファイルを保存
試しにデータ部分の1行目を削除したファイルを保存

```python
df[1:].to_csv('drive/MyDrive/ML/Pytorch-sample-luna/luna_sample_candidates_2.csv')
```
![Screen Shot 2021-11-27 at 23.05.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/818ab271-3bcc-7878-1644-7cd47d803d69.png)

無事にファイルが追加されていることを確認
![Screen Shot 2021-11-27 at 23.05.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/a6df30b2-3dbb-f3ed-835b-5845e2aa6c27.png)

### Pythonモジュールの読み込み

適当なモジュールを用意(画面中のdsets.py)
![Screen Shot 2021-11-27 at 23.23.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/75c3bf94-c923-6e1a-d0a3-19018f94f141.png)

importしてみるとモジュールを発見できずエラー

```python
import dsets
```
![Screen Shot 2021-11-27 at 23.23.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/7ad6fff4-150d-b033-1ebc-fdf5e73625ee.png)

原因はdrive/がsys.path上に無いので、発見できないこと

![Screen Shot 2021-11-27 at 23.23.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/8f1cd25e-aac9-cc38-92f5-8ee9dff9ca8c.png)

pathを追加

```python
ROOT_PATH = 'drive/MyDrive/ML/pytorch-sample-luna/'
sys.path.append(ROOT_PATH)
```
![Screen Shot 2021-11-27 at 23.25.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/580210ce-752f-2e0b-3493-548c40acc91e.png)


ロードできる(エラーはdsets.pyの中身についての指摘なのでファイルは読み込めている)

```python
import dsets
```

![Screen Shot 2021-11-27 at 23.26.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/bdbc800d-cb0f-b7d1-dfee-a4cb65010c53.png)

### 外部データを直接Driveにダウンロードする
```python
!wget -P 'drive/MyDrive/ML/pytorch-sample-luna/' 'https://zenodo.org/record/3723295/files/annotations.csv?download=1'
```
![Screen Shot 2021-11-28 at 15.31.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63508/ea68fb07-80f5-28f5-3506-4f3a812f6024.png)

## その他
必要に応じてドライブストレージを増やしましょう(個人アカウントはGoogle Oneかも)
https://drive.google.com/settings/storage