将数百个数据文件合并到一个主 DataFrame 中的有效方法是什么?

What is an efficient way to combine hundreds of data files into a single master DataFrame?

如标题所示,我有 800 多个数据文件(全部在 .csv 中)(每个文件大小约为 0-5MB,每个文件包含 10 列,第一行是 header)和我想将它们全部组合成一个 DataFrame。我可以使用 Pandas 数据框将它们一一追加,但这非常耗时。

有没有办法更快地做到这一点?

我的代码:

fname = "CRANlogs/" + ffiles[0]
df = pandas.read_csv(fname,header=0)

for i in range(807)[1:]:
    print(i)
    fname = "CRANlogs/" + ffiles[i]
    temp = pandas.read_csv(fname,header=0)
    df = pandas.merge(df,temp,how="outer")

你需要每一个的 header 吗?如果不是,将它们全部转换为 numpy 数组然后使用 numpy.append 功能然后将文件转换回 csv 文件可能会更快。

我通常创建一个帧列表,然后使用 pandas concat()

frames = [] 

for i in range(807):    
    fname = "CRANlogs/" + ffiles[i]
    temp = pandas.read_csv(fname,header=0)
    frames.append(temp)

#and now concat
df = pd.concat(frames)