如何从pandas数据框中的网页读取所有csv文件

问题描述 投票:0回答:1

我想将以下网页中的所有csv文件加载到数据框中

https://s3.amazonaws.com/tripdata/index.html

我尝试使用glob来加载目录中的所有文件但没有成功:

import glob
path ='https://s3.amazonaws.com/tripdata' # use your path
allFiles = glob.glob(path + "/*citibike-tripdata.csv.zip")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    df = pd.read_csv(file_, index_col=None, header=0)
    list_.append(df)
frame = pd.concat(list_)

有什么建议?

python pandas
1个回答
0
投票

模块glob用于在运行Python的同一系统上查找匹配模式的路径名,并且没有办法索引任意文件托管Web服务器(这甚至不是先验的)。在您的情况下,由于https://s3.amazonaws.com/tripdata/提供了所需的索引,您可以解析它以获取相关文件:

import re
import requests

url = 'https://s3.amazonaws.com/tripdata/'
t = requests.get(url).text
filenames = re.findall('[^>]+citibike-tripdata\.csv\.zip', t)
frame = pd.concat(pd.read_csv(url + f) for f in filenames)
© www.soinside.com 2019 - 2024. All rights reserved.