首页 > 解决方案 > 如何使用 Python 在 Github 上下载充满 CSV 文件的 Github Repo?

问题描述

我正在尝试对约翰霍普金斯大学 CSSE 提供的数据进行一些探索性数据分析。他们在 Github 上有这个链接https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports 我正在尝试使用 python 下载整个文件,并将其保存到我的当前目录。这样,我将拥有所有最新的数据,并且可以重新加载它以供使用。我正在使用两个函数fetch_covid_daily_data()来访问网站并下载所有 CSV 文件。然后load_covid_daily_data()我会在当前的 repo 中读取数据,这样我就可以用 pandas 处理它。

我这样做是因为如果我回到我的代码,我可以调用该函数fetch_covid_daily_data(),它将下载所做的所有新更改,例如添加的另一个每日 CSV。

标签: pythondata-analysis

解决方案


您可以直接从在线 CSV 读取数据到 Pandas DataFrame:

例子:

import pandas as pd

CONFIRMED_URL = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv'

df = pd.read_csv(CONFIRMED_URL)

# df now contains data from time of call.

您还可以创建一个类来获取和操作所有数据


import pandas as pd

class Corona:


    def __init__(self):

        BASE_URL = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series'

        self.URLS = {'confirmed': f'{BASE_URL}/time_series_covid19_confirmed_global.csv',
                'deaths': f'{BASE_URL}/time_series_covid19_deaths_global.csv',
                'recovered':f'{BASE_URL}/time_series_covid19_recovered_global.csv', 
        }


        self.data = {case:pd.read_csv(url) for case, url in self.URLS.items()}

    # create other useful functions to work with data
    def current_status(self):
        # function to show current status
        pass 


获取当前数据:

# returns data as dictionary with DataFrames as Values
corona = Corona()
confirmed_df = corona.data['confirmed']

# If you want to save them to csv
confirmed_df.to_csv('confirmed.csv', index=False)

# show first five rows
print(corona_df.head())

# check other DataFrame
print(corona.data.keys())

推荐阅读