在 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 发行版(在其他方面都非常好)。有人知道为什么吗?这有什么具体原因吗?
我有大约 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 发行版(在其他方面都非常好)。有人知道为什么吗?这有什么具体原因吗?