熊猫' numpy.resize的版本,用于高效的矩阵大小调整

时间:2015-10-20 03:15:11

标签: python arrays numpy pandas resize

我有一个包含两个索引的数据框。 (两个时间戳,但这可能不相关)。

我需要找出一个形状为(len(first_index), maxlen, num_columns)的numpy矩阵。

maxlen是一些数字(可能是所有len(second_index)中的最大数字)或仅仅是1000之类的简单数字。

我可以使用arr = df.as_matrix(...)然后arr.resize((len(first_index), maxlen, num_columns))执行此操作。新行中的元素应为0,因此.resize(...)效果良好。

在数据框中是否有更简单,更有效的方法? Numpy工作得很好,但我需要最大的效率,因为我有数百万行。

1 个答案:

答案 0 :(得分:0)

如果你想留在熊猫队内,我会建议以下之一:

df.unstack()会导致形状(len(index2), maxlen * num_columns)跟随您的符号;此处columns将存储为MultiIndex

或者,您可以使用df.to_panel(); Panel是一个自然的Pandas数据结构,用于3维,就像你的情况一样。我认为形状应该是(num_columns, len(index1), maxlen)

然后,您可以使用nan填充所有.fillna(0)