我有大约700 CSV
个文件。它们通常都是几兆和几千行。所以,总文件夹大约是1gig。我想将它们合并到一个HDF5
文件中。
我首先定义了一个函数read_file(file)
,它读取单个文件,并使用pd.read_csv()
对其进行解析。然后它返回一个数据帧。
然后我使用此代码转换:
for file in files:
print (file + " Num: "+str(file_num)+" of: "+str(len(files)))
file_num=file_num+1
in_pd=read_file(file)
in_pd.to_hdf('AllFlightLogs.h5','flights',mode='a',append=True)
而且,它适用于大约202个文件,然后python崩溃:Abort trap: 6
我不知道这个错误意味着什么。我也看到它弹出一个显示堆栈错误的窗口。
我尝试使用complib='lzo'
,但似乎没有任何区别。我已经尝试每100次读取保存到不同的hdf5文件,这确实会在崩溃之前更改文件的确切数量。但是,它仍然会发生。
对于该特定文件,似乎没什么特别之处。反正有没有找到关于这个特定错误的任何其他内容?我知道当我尝试调用in_pd.to_hdf()
时发生崩溃(我在之前和之后添加了print语句)。
我正在Mac
上运行,并使用pandas 16.2
。
答案 0 :(得分:1)
我升级到3.2.1,似乎已修复它。所以,这对我的代码来说不是问题(这让我发疯了),但这是一个pytables问题。
答案 1 :(得分:0)
Adam's answer solved my problem on my imac. But as of 1sep15, while pytables is available for linux and osx, it is still not for Windows - I use the Anaconda distribution (very good in every other respect). Does anybody know why ? Is there a specific reason for that ?