使用 Pandas,如何读取使用 url 获取的 zip 文件中的 csv 文件[Python]

ksp*_*spr 1 python zip pandas

此网址 https://ihmecovid19storage.blob.core.windows.net/latest/ihme-covid19.zip

包含 2 个 csv 文件和 1 个每日更新的 pdf 文件,其中包含 Covid-19 数据。

我希望能够将其Summary_stats_all_locs.csv作为 Pandas DataFrame 加载。

通常,如果有一个指向 csv 的 url,我就可以使用df = pd.read_csv(url),但由于 csv 位于 zip 内,所以我不能在这里这样做。

我该怎么做?

谢谢

小智 6

您需要首先获取文件,然后使用ZipFile模块加载它。Pandas 实际上可以从 zip 内部读取 csv,但这里的问题是有多个,所以我们需要这个并指定文件名。

import requests
import pandas as pd
from zipfile import ZipFile
from io import BytesIO

r = requests.get("https://ihmecovid19storage.blob.core.windows.net/latest/ihme-covid19.zip")
files = ZipFile(BytesIO(r.content))
pd.read_csv(files.open("2020_05_16/Summary_stats_all_locs.csv"))
Run Code Online (Sandbox Code Playgroud)