熊猫:快速而强大的二进制解析器

时间:2018-12-24 09:40:26

标签: python pandas parsing

我想将大型二进制文件(5GB)解析为python框架。该文件包含应放入不同数据帧的不同程序包。每个包都包含c类型变量。这些文件中的数据已损坏,因此分析必须可靠。

我已经成功编写了一个解析器,但是速度很慢。我用struct.unpack逐包解析,并将数据附加到每种包类型的列表中。解析完成后,我将从列表中创建数据帧。 随着文件大小的增长,将列表转换为数据帧会花费越来越多的时间。

将数据首先放在列表中,然后再将它们放入数据框似乎效率很低。此外,当我确切地知道每列是什么c类型时,让pandas处理类型似乎不太好。

为每个列预分配一个具有正确类型的大数据框,然后在解析时填充它是否有意义?在c中分配和填充数组是否值得,而不是以某种方式包装数据框? 还是有一种优雅的方式将迭代器传递给熊猫并让它处理所有事情?我已经研究过诸如read_csv之类的熊猫解析函数,但是它看起来是如此复杂,以至于我完全迷失了。

任何帮助将不胜感激

有关二进制文件的更多信息:

数据打包如下: h0 h1 id size data checksum

其中h0h1是标头字节,id是决定数据进入哪个数据帧的包ID,size是数据大小,{{1 }}是数据,由不同的c类型(uint8,float等)组成。

0 个答案:

没有答案