2016-11-25 2 views

答えて

7

カスタムSeriesgroupbyを使用することができます。

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) 
print (df) 
    a 
0 1 
1 1 
2 -1 
3 1 
4 -1 
5 -1 

print ((df.a != df.a.shift()).cumsum()) 
0 1 
1 1 
2 2 
3 3 
4 4 
5 4 
Name: a, dtype: int32 
for i, g in df.groupby([(df.a != df.a.shift()).cumsum()]): 
    print (i) 
    print (g) 
    print (g.a.tolist()) 

    a 
0 1 
1 1 
[1, 1] 
2 
    a 
2 -1 
[-1] 
3 
    a 
3 1 
[1] 
4 
    a 
4 -1 
5 -1 
[-1, -1] 
+3

をありがとうございましたスマートどんな男 –

+0

。どのように機能するのですか? – jezrael

+0

まさに私が必要としたもの。ありがとうございました。 –

関連する問題