处理异构数据和大型“二进制”数据

时间:2013-11-05 18:13:26

标签: pandas

这是我的用例(我认为这是相当典型的):

我有一堆异构数据,可以很容易地以表格形式投射。根据应用于一列或多列的条件,我选择各种行。称之为select_table

我还有一堆与某些列相关联的二进制数据。

我希望根据应用于select_table的条件有效地提取这个二进制数据,并轻松维护select_table中行和列之间的链接。

理想情况下,我想要一个接受二进制(对象)数据的frame_table,它允许我使用select_table透明地提取二进制数据(就像我对常规数据类型一样)。但是,我无法将对象列的数据框保存为frame_tables。

现在我有两个pandas数据帧。一个是select_table,另一个是将二进制数据作为对象存储在适当的列中。这迫使我立即将整个二进制数据表加载到内存中,然后根据select_table返回的行标识进行选择。

我已经将二进制表保存在一个单独的hdf5文件中,并使用select_table中的行索引从磁盘中提取所需的数据块。

我的问题:在Pandas中有没有一种正确的方法来处理这个用例?

谢谢!

1 个答案:

答案 0 :(得分:2)

听起来与here的用例非常相似。接近结尾是我编写的脚本,用于存储HDF5中的主要数据和二进制数据,并将它们包装在对象中,这样您就可以进行“自动”子查询(例如,您可以进行主查询,然后进行子查询附加数据)

另一种解决方法是将select_table文件中的引用存储到二进制数据中,该数据可以是url-like,也可以是对另一个文件的文件和节点引用,例如: 像/path_to_my_data_file/file.hdf:/node_path_in_hdf5_file

这样的东西