2016-08-05 30 views
2

內這是一個後續問題get first and last values in a groupby降第一和最後一行從各組

如何退出第一行和最後一行每組內?

我有此df

df = pd.DataFrame(np.arange(20).reshape(10, -1), 
        [['a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'd'], 
        ['a', 'a', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']], 
        ['X', 'Y']) 

df 

我有意取得的第二行具有相同的索引值的第一行。我無法控制索引的唯一性。

 X Y 
a a 0 1 
    a 2 3 
    c 4 5 
    d 6 7 
b e 8 9 
    f 10 11 
    g 12 13 
c h 14 15 
    i 16 17 
d j 18 19 

我想這

 X Y 
a b 2.0 3 
    c 4.0 5 
b f 10.0 11 

因爲這兩個羣體在0的水平,相當於「C」和「D」小於3行,所有行應該被丟棄。

回答

3

我申請了類似的技術,我所做的其他問題:

def first_last(df): 
    return df.ix[1:-1] 

df.groupby(level=0, group_keys=False).apply(first_last) 

enter image description here

0

注:熊貓版0.20.0以上,九是deprecated和使用反而鼓勵iloc。因此df.ix[1:-1]應該由df.iloc[1:-1]取代。

相關問題