【问题标题】:COVID-19 data analysis with Python from Github CSV使用来自 Github CSV 的 Python 进行 COVID-19 数据分析
【发布时间】:2020-08-08 10:54:30
【问题描述】:

此链接包含用于 COVID-19 每日报告的 CSV 文件。

https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports

在数据框中获取所有 csv 文件的最佳解决方案是什么?

我从其他问题中尝试了下面的代码,但它不起作用。

from pathlib import Path
import pandas as pd

files = Path('https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports')

csv_only = files.rglob('*.csv')

combo = [pd.read_csv(f)
         .assign(f.stem)
         .fillna(0)
         for f in csv_only]

one_df = pd.concat(combo,ignore_index=True)

one_df = one_df.drop_duplicates('date')
print(one_df)

我怎样才能满足读取所有文件的请求?

【问题讨论】:

  • 我们应该称它为 convid19 吗?
  • 我不明白你的意思

标签: python pandas selenium github python-requests


【解决方案1】:

您可以简单地使用requests 模块来获取所有.csv 的名称,这样就无需运行glob

import requests
url = "https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports"
csv_only  = [i.split("=")[1][1:-1] for i in requests.get(url).text.split(" ") if '.csv' in i and 'title' in i]

【讨论】:

  • 我应该如何将它传递给 DF?
  • pd.read_csv(url.replace("github","raw.githubusercontent")+"/"+csv_only[i]) 应该加载文件。休息一下,你似乎已经想通了!
  • csv_only[i]) 获得NameError: name 'i' is not defined
  • 我的意思是你已经有了 for f in csv_only 部分,然后将 csv_only[i] 替换为 f :(在 for 循环中,以便稍后连接)
  • 缺少 .replace("/tree/","/") 以从 URL 中删除 /tree。它现在起作用了!谢谢
【解决方案2】:

pathlib 仅适用于文件系统,因此不会这样做。 csv_only 将是一个空生成器,因为您的磁盘上没有这样的位置。您需要使用实际的 http 请求从 github 获取数据。我前段时间做了一些个人的东西,你可以have a look并相应地修改它(使用github API,所以你需要一个)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多