【问题标题】:How Download Github Repo Filled with CSV Files on Github using Python?如何使用 Python 在 Github 上下载充满 CSV 文件的 Github Repo?
【发布时间】:2020-04-11 06:52:55
【问题描述】:

我正在尝试对约翰霍普金斯大学 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(),它将进入当前的存储库并读取数据,以便我可以使用 pandas 处理它。

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

【问题讨论】:

    标签: python data-analysis


    【解决方案1】:

    您可以直接从在线 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())
    

    【讨论】:

    • 嗨,是的,我已经多次完成了您的第一个示例,但我的问题是我想在每日报告中收集所有这些 csv 并自己将它们合并在一起。我想知道是否有一种简单的方法可以做到这一点,以防我遇到多个 csv 文件中的数据并且需要加入它们。我试图在 google colab 上执行此操作,所以我不想下载数据
    • 我也喜欢你使用类的想法!
    • 您也可以轻松做到这一点。我喜欢类的原因是它们有助于组织你的代码。要回答您的多个 csv,如果 csv 名称中有一个模式,您仍然可以使用上面的类和列表理解来获取所有 csv,然后合并/合并/加入一个。如果您提供 csvs 的示例 url 以及您想要做什么,我很乐意提供帮助。见stackoverflow.com/questions/20906474/…
    【解决方案2】:

    假设您已经安装了 git,您需要从终端克隆存储库

    git clone https://github.com/CSSEGISandData/COVID-19
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2017-03-01
      • 2020-09-11
      相关资源
      最近更新 更多