私は以下のように、パンダのデータフレームDFで作業しています。 DFのすべての要素は正の整数または0です。pandasデータフレームの行を削除する:特定の条件が満たされるたびに以前のk行を削除します
kが2以上であるように、列 'c'にi番目の行のkと等しい値が含まれている場合は、行iを削除します。行(i-1)、...、行(i-(k-1))となる(k行合計が削除される)。 I カラム 'c'の値が2以上の場合、行が削除される必要があります。
この例では、これは問題の「k」が3になり、 5行目(5行目、4行目、3行目を削除します。合計3行、 '3'の値を含む行を含めて)。
注意:列 'c'のj番目の行がkに等しい場合、直前のk-1行は0になります。つまり、行jが削除されると、削除された他の行はすべて列c 。
誰でもこれを行う方法のアイデアはありますか?必要な結果を有する例示的なデータフレームの画像について
、https://i.imgur.com/2QpC7JF.pngを参照してください。
データフレーム:
A = matrix([[9, 9, 0, 9, 9],
[1, 2, 1, 9, 9],
[8, 8, 0, 2, 3],
[7, 7, 0, 7, 8],
[1, 2, 0, 3, 4],
[6, 6, 3, 6, 6],
[1, 2, 0, 1, 2]])
DF = pd.DataFrame(A)
DF.columns = ['a', 'b', 'c', 'd', 'e']
ありがとうございました。これは機能しました(ちょうどrange関数の両方の引数に1を加えなければなりません)。 –