2016-06-20 25 views
4

測試df拆分奇數行,而不雙ILOC

import pandas as pd 

df = pd.DataFrame({'A':[1,2,3,7,8,4], 
        'B':[4,5,6,1,4,6], 
        'C':[7,8,9,2,7,3], 
        'D':[4,5,2,1,0,6]}) 

df.set_index(['A','B'], inplace=True) 
print (df) 
    C D 
A B  
1 4 7 4 
2 5 8 5 
3 6 9 2 
7 1 2 1 
8 4 7 0 
4 6 3 6 

由奇數行分裂:

​​3210

我需要再次分裂它 - 在df1最後一行和所有其他行df2

df1 = df.iloc[-2::2] 
df2 = df.iloc[::2].iloc[:-1,:] 

print (df1) 
    C D 
A B  
8 4 7 0 

print (df2) 
    C D 
A B  
1 4 7 4 
3 6 9 2 

沒有雙重更好的解決方案iloc

回答

4

這不工作?

df2 = df.iloc[:-2:2] 

    C D 
A B  
1 4 7 4 
3 6 9 2 
+0

謝謝你,這是非常好的。 – jezrael