【发布时间】:2020-05-17 07:55:17
【问题描述】:
我尝试从我的文件夹中获取所有 csv 文件。
我是这样做的:
currentfile = glob.glob("pathwheremycsvare')
所以在变量 currentfile 中现在有一个 csv 文件的所有路径名的列表。 (目前只有一个文件供测试。)
现在我尝试把它放到pandas.read_csv 函数中:
readcsv=pd.read_csv(currentfile)
但我得到了这个例外:
ValueError: Invalid file path or buffer object type: <class 'set'>
我该如何解决这个问题?
编辑:
试过了:path = r"pathname\*.csv"
for fname in glob.glob(path):
print(fname)
它会打印出所有带有路径的 csv 文件。
现在我需要一个 foo 循环,它使用每个 csv 执行程序的其余部分。
我将尝试使用 for 循环...
【问题讨论】:
-
从错误信息来看,我预计
type(currentfile)会返回set。如果是这样,您需要从currentfile中提取每个路径的字符串值。最简单的可能就是迭代currentfile。 -
你想要一个包含所有文件信息的DataFrame,还是单独的DataFrame,每个文件一个?
-
打印当前文件的样子。您需要做的是遍历每一个并读取单个 csv,并根据您的问题将它们全部附加到一个包含所有数据的海量数据框中。
-
假设您想将所有 csv 文件合并到一个数据帧中并且它们都具有相似的结构,请尝试以下操作:
pd.concat([pd.read_csv(current_file) for current_file in os.listdir('pathwheremycsvare')])
标签: python pandas csv for-loop