1
私は、パンダのデータフレームを値にサブセット化し、そのIDでグループ分けしたいと思っています。私が持っている実際のデータセットたとえば 'ID' と '状態'サブセットpandasデータフレーム初めて条件が満たされたときまで
の間で複数の列で:
d = {'id': [1,1,1,1,1,1,1,2,2,2,2,2,2,2], 'status': [0,0,0,0,1,1,1,0,0,0,0,1,0,1]}
df = pd.DataFrame(data=d)
id status
0 1 0
1 1 0
2 1 0
3 1 0
4 1 1
5 1 1
6 1 1
7 2 0
8 2 0
9 2 0
10 2 0
11 2 1
12 2 0
13 2 1
希望サブセットは、次のようになります。
id status
0 1 0
1 1 0
2 1 0
3 1 0
4 1 1
5 2 0
6 2 0
7 2 0
8 2 0
9 2 1
はここインデクサーとして使用するマスクを作成するために
groupby
を行い、代替です。 .cumsum()。cumsum()の使用方法を2回説明できますか?私は出力の違いを見るが、完全に理解していない。 –@DarenEiri MCVEであなたを賞賛しなければならない。 「状態」は「0 0 0 1 0 1」とする。最初の4行は必要ですか?最初の 'cumsum'は' 0 0 0 1 1 2'を与えます。 '> = 1'(または' le(1) ')の条件に基づいて、私は4を求めている間に最初の5行を与えます。2番目の' cumsum'は '0 0 0 1 2 4'、今では 'le(1)'は私に必要な最初の4行だけを与えてくれます。 –
@COLDSPEED。ご説明をいただき、ありがとうございます。私は数多く失敗した試みの中で 'cumsum'アプローチを使っていましたが、' le(1) 'の2番目の' cumsum'が違いになりました! –