【发布时间】:2017-11-11 21:28:14
【问题描述】:
我尝试将多个 (25k) .csv 文件附加到 HDFStore 文件中。它们都共享相同的标题。我正在使用下面的代码,但由于某种原因,每当我运行它时,数据框并没有附加所有文件,而只是列表中的最后一个文件。
filenames = [] #list of .csv file paths that I've alredy populated
dtypes= {dict of datatypes}
store = pd.HDFStore('store.h5')
store.put('df', pd.read_csv(filenames[0],dtype=dtypes,parse_dates=
["date"])) #store one data frame
for f in filenames:
try:
temp_csv = pd.DataFrame()
temp_csv = pd.read_csv(f,dtype=dtypes,parse_dates=["trade_date"])
store.append('df', temp_csv)
except:
pass
我尝试使用文件名列表的一个子集,但总是得到最后一个条目。出于某种原因,循环不是附加我的文件,而是每次都覆盖它。任何建议将不胜感激,因为这让我发疯。 (python 3, windows)
【问题讨论】:
-
如果你不必用
pandas做,你可以用普通的pythonopen命令做。看看这个link -
感谢您的建议 - 我会尝试一下。我正在使用这种方法,因为 csv 文件每个都有大约 100k 行,其中有 25k。当我尝试只使用数据帧而不是 hdf 文件时,我的计算机一直在崩溃,因为数据集太大了。
-
Catch all except 很少是个好主意。你的 except: pass 隐藏了什么?
标签: python csv pandas append hdfstore