2017-01-23 20 views
1

ドロップ行以下のように私はパンダ(マルチインデックス)データフレームを持ってGROUPBY

   date  Volume 
Account ID      
10001 2 02-03-2017 0 
     3 02-03-2017 0 
     3 09-03-2017 0 
     3 16-03-2017 50 
     3 21-03-2017 65 
     3 28-03-2017 0 
     3 04-04-2017 0 
     3 11-04-2017 60 
10002 5 02-03-2017 14.5 
     6 09-03-2017 14.5 
     3 09-03-2017 0 
     3 16-03-2017 0 
     3 21-03-2017 20 
     3 28-03-2017 33 
10003 8 21-03-2017 14.5 
     9 28-03-2017 15.0 

今私はの始まるですべての行を削除したいですシリーズ(アカウントと製品の組み合わせの日付)を0に設定します。したがって、シリーズの途中または途中にある場合は、ボリュームを0にする必要があります。

したがって、上記の例では、私は次のような出力をしたいと思いますが:

   date  Volume 
Account ID      
10001 3 16-03-2017 50 
     3 21-03-2017 65 
     3 28-03-2017 0 
     3 04-04-2017 0 
     3 11-04-2017 60 
10002 5 02-03-2017 14.5 
     6 09-03-2017 14.5 
     3 21-03-2017 20 
     3 28-03-2017 33 
10003 8 21-03-2017 14.5 
     9 28-03-2017 15.0 

現在、私は例えば、フィルタで完全なシリーズを削除してきました

そして、最初の行だけを削除する例があります。 Python: Pandas - Delete the first row by group。しかし、私はどのようにアカウントの列の冒頭にゼロの行を削除するかわからない。

誰かが私を助けることができれば素晴らしいだろう!

答えて

1

あなたはcumsumgroupbyによって作成maskboolean indexingを使用して0ない値を見つけることができます。

print (df.groupby(level=['Account','ID'])['Volume'].cumsum()) 
Account ID 
10001 2  0.0 
     3  0.0 
     3  0.0 
     3  50.0 
     3  115.0 
     3  115.0 
     3  115.0 
     3  175.0 
10002 5  14.5 
     6  14.5 
     3  0.0 
     3  0.0 
     3  20.0 
     3  53.0 
10003 8  14.5 
     9  15.0 
Name: Volume, dtype: float64 
mask = df.groupby(level=['Account','ID'])['Volume'].cumsum() != 0 
#!= is same as ne function 
#mask = df.groupby(level=['Account','ID'])['Volume'].cumsum().ne(0) 
print (mask) 
Account ID 
10001 2  False 
     3  False 
     3  False 
     3  True 
     3  True 
     3  True 
     3  True 
     3  True 
10002 5  True 
     6  True 
     3  False 
     3  False 
     3  True 
     3  True 
10003 8  True 
     9  True 
Name: Volume, dtype: bool 
print (df[mask]) 
        date Volume 
Account ID      
10001 3 16-03-2017 50.0 
     3 21-03-2017 65.0 
     3 28-03-2017  0.0 
     3 04-04-2017  0.0 
     3 11-04-2017 60.0 
10002 5 02-03-2017 14.5 
     6 09-03-2017 14.5 
     3 21-03-2017 20.0 
     3 28-03-2017 33.0 
10003 8 21-03-2017 14.5 
     9 28-03-2017 15.0 
+0

ありがとうございました!これは素晴らしい作品:) – Tessa

関連する問題