我有一个包含两个索引的数据框。 (两个时间戳,但这可能不相关)。
我需要找出一个形状为(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 :(得分:0)
如果你想留在熊猫队内,我会建议以下之一:
df.unstack()
会导致形状(len(index2), maxlen * num_columns)
跟随您的符号;此处columns
将存储为MultiIndex
。
或者,您可以使用df.to_panel()
; Panel
是一个自然的Pandas数据结构,用于3维,就像你的情况一样。我认为形状应该是(num_columns, len(index1), maxlen)
。
然后,您可以使用nan
填充所有.fillna(0)
。