如标题所示,我有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")
我通常创建一个帧列表,然后使用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)
您需要每一个的标题吗?如果没有,将它们全部转换为numpy数组,然后使用numpy.append功能,然后将文件转换回csv文件可能会更快。