在 pandas 中将 CSV 合并到 HDF5 导致崩溃

Merge CSV into HDF5 in pandas leads to crash

我有大约 700 个 CSV 文件。它们通常都是几兆和几千行。所以,总文件夹是 ~1gig。我想将它们合并到一个 HDF5 文件中。

我首先定义了一个函数 read_file(file),它读取单个文件,并使用 pd.read_csv() 解析它。然后 returns 一个数据框。

然后我使用这段代码来转换:

    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 我不知道这个错误是什么意思。我还看到它弹出 window 显示堆栈错误。

我试过使用 complib='lzo',但似乎没有任何区别。我尝试每读取 100 次就保存到一个不同的 hdf5 文件,这确实改变了崩溃前文件的确切数量。但是,它还是会发生。

该特定文件似乎没有任何特别之处。无论如何要找出有关此特定错误的其他信息?我知道当我尝试调用 in_pd.to_hdf() 时会发生崩溃(我在前后添加了打印语句)。

我 运行 在 Mac,使用 pandas 16.2

我升级到 3.2.1,似乎已经修复了。所以,这不是我的代码的问题(这让我发疯),而是 pytables 的问题。

Adam 的回答解决了我在 iMac 上的问题。 但是截至 2015 年 9 月 1 日,虽然 pytables 可用于 linux 和 osx,但它仍然不适用于 Windows - 我使用 Anaconda 发行版(在其他方面都非常好)。有人知道为什么吗?这有什么具体原因吗?