[datafream]前の行より値が小さかったら削除(この処理を繰り返したい)

実現したいこと

イメージ説明
↑のようなカラム名がindex,valueという**データフレーム(test1)**があります。
value列の前の行と比べて数値が減っていたらその行を削除するというプログラムを作りたいです。

書きたいプログラムとしては、
value列の数字を行ごとに引き算していく
例:2行目-1行目→30-9=21

引き算後のデータフレーム(test_diff)
イメージ説明

マイナス行を削除したデータフレーム(test2)
イメージ説明
※画像データフレーム名がtest1とありますがtest2の間違いです。
これで完成したと思いたいところですが、
index15 を削除してもその下のindex16の値50のためindex14よりも減っている値になってしまいます。
そのため、この計算を何度も繰り返して完成形にもっていきたいです。

該当のソースコード

Python

#※実際はindex番号が複数重複しているためindexごとでfor文を回しています。 for~以下省略     #処理↓ #上下で計算 test1_diff=test1['value'].diff() #0行目はそのまま test1_diff[0]=test['value'].iloc[0] #負の数の行を抽出する index=np.where(test1_diff<0)[0] #index行を削除する   #以下略

↑上記のプログラムですと1度で終わってしまうので
マイナスがなくなるまで処理を繰り返したいです。
ご教授お願いいたします。

コメントを投稿

0 コメント