簡體   English   中英

有沒有辦法將 csv 文件從 github 自動導入我的 jupyter notebook

[英]Is there a way to import csv file from github automatically to my jupyter notebook

我是一個初學者,我正在開發一個代碼來可視化冠狀病毒在全球的傳播,我想從GitHub 存儲庫( csse_covid_19_data中提取 .csv 文件,其中每 2 天上傳一個新的 .csv 文件。 是否可以將最新的 csv 文件自動導入筆記本,而不是手動下載文件?

我試過抓取數據,但沒有幫助

import requests

url = 'https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_daily_reports/03-08-2020.csv'
response = requests.get(url)
print(response.text)

解決方案1:

此解決方案特定於您的用例:

使用以下pip命令安裝PyGithub包:

!pip install PyGithub

生成Github的API從此令牌頁面點擊Generate new token ,並通過該令牌作為的地方在下面的代碼串token建立與Github上的連接:

from github.MainClass import Github
g = Github(token)

現在您已使用您的憑據連接到 Github,您可以訪問您的所有存儲庫內容以及其他公共存儲庫。

加載存儲CSV文件的存儲庫:

repo = g.get_repo("CSSEGISandData/COVID-19")

獲取存儲在CSV文件所在目錄中的文件對象列表:

file_list = repo.get_contents("csse_covid_19_data/csse_covid_19_daily_reports")

由於存放這些CSV文件的目錄還包含一個.gitignore文件和一個README.md文件,文件命名為“mm-dd-yyyy”格式,所以README.md出現在最后一秒file 是您最新更新的文件。 要訪問它,請運行以下代碼:

github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'
file_path = github_dir_path  + str(file_list[-2]).split('/')[-1].split(".")[0]+ '.csv'

使用read_csv()方法從指定路徑加載數據。

import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)

解決方案2:

如果您想手動指定路徑,請嘗試以下代碼:

通過右鍵單擊raw從 Github 獲取 CSV 文件的路徑,如下所示,並將其值分配給file_path

在此處輸入圖片說明

file_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/03-08-2020.csv'

使用read_csv()方法從指定路徑加載數據:

import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)

解決方案3:

如果要自動指定路徑,請嘗試以下代碼:

設置您想要刷新代碼的時間並將下面給出的解決方案與之集成。

由於您知道存儲最新文件的目錄以及將新文件添加到該目錄的頻率,您只需以 mm-dd-yyyy 格式動態更改當前日期的日期:

from datetime import date
file_date = str(date.today().strftime('%m-%d-%Y'))
file_date

輸出: 03-11-2020

同樣,如果要為昨天的日期運行代碼,只需更改 file_date 的值:

from datetime import date, timedelta
file_date = str((date.today() - timedelta(days = 1)).strftime('%m-%d-%Y'))
file_date

輸出: 03-10-2020

由於當前在該目錄中,最后上傳的文件是 2020 年 3 月 9 日,因此我們將使用該日期:

from datetime import date, timedelta
file_date = str((date.today() - timedelta(days = 2)).strftime('%m-%d-%Y'))
file_date

輸出: 03-09-2020

動態生成 file_path:

github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'
file_path = github_dir_path  + file_date + '.csv'

使用read_csv()方法從指定路徑加載數據。

import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)

用:

https://raw.githubusercontent.com/CSSEGISandData/COVID19/master/csse_covid_19_data/csse_covid_19_daily_reports/03-08-2020.csv [“原始”文本]

例子:

import requests

url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/03-08-2020.csv'
resp = requests.get(url)
print(resp.text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM