将数百个数据文件合并到一个主 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)
如标题所示,我有 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)