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

时间:2015-03-20 16:07:36

标签: python pandas append dataframe

在标题中,我有超过800个数据文件(全部以.csv为单位)(每个大小约为0-5MB,每个文件包含10列,第一行为标题)我希望将所有将它们放入单个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")

2 个答案:

答案 0 :(得分:1)

我通常会创建一个框架列表,然后使用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)

答案 1 :(得分:0)

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