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

2024-06-28 11:04:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把所有的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_)

有什么建议吗?在


Tags: 文件csvpathhttpscomindexs3frame
1条回答
网友
1楼 · 发布于 2024-06-28 11:04:08

模块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)

相关问题 更多 >