python - 如何使用 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。
解决方案
您可以直接从在线 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())
推荐阅读
- ios - SwiftUI 如何在 UIBarButtonItem 上添加操作?
- c++ - 如何在一个文件中拥有模板和非模板功能
- amazon-dynamodb - 如何序列化和反序列化 DynamoDB 流记录对象
- reporting-services - 如何将 SSRS 中的日期时间列正确导出到 Excel
- sql - SQL Server 查询需要从组中提取数据
- powerbi - 尝试在 Power Bi 中创建自定义列
- vba - 在 VBA 中按名称解析枚举值
- python - 将引号附加到python中文件中的链接
- docker - Docker - 将 fusionauth 更新到最新版本
- c# - System.Diagnostics.Process 适用于一台电脑,但不适用于其他电脑