2016-11-24 57 views
0
存在

如果我有一個大熊貓數據框,看起來像這樣:如何重組一個大熊貓數據幀,即使在丟失數據

df=pandas.DataFrame(range(8)) 



    0 
0 0 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 

什麼是重組這個幀分成五個行兩列的最佳方式,不管事實我只有8個數字?

所以輸出會是:

0 1 
0 0 5 
1 1 6 
2 2 7 
3 3 NaN 
4 4 NaN 
5 5 NaN 
+0

是否有任何邏輯來重新排列,比2×其它? –

回答

1

只是讓你知道有是一個numpy函數來調整你的數組的大小。它不會填充Na的壽命,它可能會重複您的值,或者可能會在缺失點添加0。

加入0:

import numpy as np 
df=pandas.DataFrame(range(8)) 
arr = df.values.copy() 
arr.resize(2, 5) 
pd.DataFrame(arr.T) 
Out[53]: 
    0 1 
0 0 5 
1 1 6 
2 2 7 
3 3 0 
4 4 0 

重複值缺少斑點:

import numpy as np 
df=pandas.DataFrame(range(8)) 
pd.DataFrame(np.resize(df.values, (2, 5)).T) 
Out[61]: 
    0 1 
0 0 5 
1 1 6 
2 2 7 
3 3 0 
4 4 1 
1

試試這個:

pd.DataFrame([df[0].values[:6], df[0].values[6:]]).T 

    0 1 
0 0.0 5.0 
1 1.0 6.0 
2 2.0 7.0 
3 3.0 NaN 
4 4.0 NaN 

如果你真的想重複5兩次:

pd.DataFrame([df[0].values[:6], df[0].values[5:]]).T 


    0 1 
0 0.0 5.0 
1 1.0 6.0 
2 2.0 7.0 
3 3.0 NaN 
4 4.0 NaN 
5 5.0 NaN