2015-10-20 157 views
0

我有一个有两个索引的数据帧。 (时间戳,但可能不相关)。Pandas版本的numpy.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工作得很好,但我需要最大的效率,因为我拥有数百万行。

回答

0

如果你想留下来“熊猫”之内,我会建议下列之一:

df.unstack()这将导致形状(len(index2), maxlen * num_columns)以下的符号;这里columns将被存储为MultiIndex

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

然后您可以填写任何nan s与.fillna(0)