Pandas在加载多个.csv文件时返回空数据帧



我非常困惑,为什么这是不工作,因为我没有得到一个错误消息。

我一直试图从一个文件夹加载多个。csv文件(都有相同的格式,因为他们已经从PubMed API收集)到一个单一的数据帧。

这是我的代码:

path = "~/Desktop/PubMed/Corpus"
files = glob.glob(path + "/*.csv")
dfs = [pd.read_csv(f, header=None) for f in files]
print(dfs)

返回如下:

[]

之后,我测试了是否可以加载单个文件,它可以!

请帮忙解决这个问题。

最新MAC版本

我不确定,因为我没有在它上工作,但我怀疑问题可能是由使用~作为

引起的

与unix shell不同,Python不做任何自动的路径扩展。

请尝试使用os.path.expanduser,它应该会照顾它,即替换

path = "~/Desktop/PubMed/Corpus"

使用

import os
path = os.path.expanduser("~/Desktop/PubMed/Corpus")

不确定glob可能有什么问题,但我建议使用os.listdir作为解决方案,然后检查您的列表理解f是否有正确的扩展:

files = os.listdir(path)
dfs = [pd.read_csv(f, header=None) for f in files if f.split('.')[-1] == 'csv']