2015-10-20 33 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)