pdf = pd.DataFrame(np.random.rand(4,5), columns = list('abcde'))
pdf['a'][2:]=pdf['a'][0]
pdf['a'][:2]=pdf['a'][1]
pdf.set_index(['a','b'])
輸出:
c d e
a b
0.439502 0.115087 0.832546 0.760513 0.776555
0.609107 0.247642 0.031650 0.727773
0.995370 0.299640 0.053523 0.565753 0.857235
0.392132 0.832560 0.774653 0.213692
每個數據系列是由索引ID分組a
和b
表示的其他功能的時間索引a
。有沒有辦法讓熊貓產生一個反映a
分組的排列的3d陣列?目前它將數據讀取爲二維,因此pdf.shape
輸出(4, 5)
。我想是的數組是可變的形式:
array([[[-1.38655912, -0.90145951, -0.95106951, 0.76570984],
[-0.21004144, -2.66498267, -0.29255182, 1.43411576],
[-0.21004144, -2.66498267, -0.29255182, 1.43411576]],
[[ 0.0768149 , -0.7566995 , -2.57770951, 0.70834656],
[-0.99097395, -0.81592084, -1.21075386, 0.12361382]]])
是否有本地熊貓辦法做到這一點?請注意,實際數據中每a
分組的行數是可變的,所以我不能只是轉置或重塑pdf.values
。如果沒有本地方法,迭代構建數十萬行和數百列數組的最佳方法是什麼?
有你看着一個形狀通過...分組?它可以根據列或索引級別對子集執行操作,並且大多數情況下可以避免使用ND數組,其中N> 2 –
是的,我可以使用pdf.groupby(level = 1)並獲取我可以使用的groupby對象操作;不過,我需要將所有內容輸出到numpy數組中。這是Pandas管道中的最後一步,下一個需要如上所述的陣列。 – user2805751