【发布时间】:2013-07-15 18:44:58
【问题描述】:
我的数据将由许多属性组成,这些属性可以用任意长度的数组来描述(例如,一个对象可以包含一定数量的集群,我想将每个组成集群的大小存储为一列,但原则上,每个对象的簇数范围可以从 0 到 \infty)。有没有办法支持任何长度的数组作为 Pandas 数据框中的列数据?我意识到我可以使用面板,但 AFAIK 需要知道面板的深度(原则上我在加载数据之前无法知道),此外,面板可能非常稀疏,因为在示例中,许多对象可能只有很少的簇。
如果我只使用 dtype=object 的 numpy 数组,是否会对存储在 H5Store 或 Pandas 选择或其他任何东西的性能产生任何影响?
【问题讨论】:
-
您不能添加一个名为“cluster_id”的列并将其全部存储在一个简单的数据框中吗?
-
啊,你的意思是一列可以包含数据框?这对性能有什么影响吗?我在某处读到使用 numpy.array 作为列数据将不允许某些 Pandas 优化,但如果数据帧不是这种情况作为列数据,那就太好了!
-
如果每个集群都有一个数据框,列 ['A', 'B', 'C'] 将它们组合成一个新的数据框,列 ['ID', 'A', 'B ', 'C'] 其中 ID 是每个集群的唯一标识符。因此,您将拥有“一个”巨大的数据框(没有列包含数据框),其中每个集群将有不止一行。如果需要,我可以发布更详细的解释作为答案
-
是的,举个例子就好了。这是我尝试将 Pandas 用于以下场景的示意图: * 对象 1:[集群 1a,集群 1b,集群 1c] * 对象 2:[集群 2a,集群 2b,...集群 2z] * 对象 3: [集群 3a] * ... * 对象 n:[集群 na, ... 集群 nk]
标签: python numpy pandas multidimensional-array pytables