for文中に変数の変化を加えても変わらない

前提

質問としてはpython基礎についてとなります。

openpyxlとpandasを利用してExcelファイルの編集を行っています。
とあるExcelの表をopenpyxlで開き、一列目(実際の表では社員番号が表記されている列)に"重複"と記載されていた場合は、その行を削除するという操作をfor文で行っています。
行が削除されることで、それ以降の行番号が一つずつずれてしまうため、下記コードのように"c=c-1"とし、行を飛ばすことなく操作することが目的だったのですが、cの値は変わることなく処理が行われてしまいます。
そのため、実行結果としては"重複"と記載されていた行が2行続いていた場合は、2行目の処理が行われず表に残ったままです。
どうすればすべての行に処理を行えるようにできるでしょうか?
また、代替案等ございましたらご教授お願い致します。

ソースコードは問題部分だけ記載しております。

該当のソースコード

python

1#iは最大行数です2 3c = 44for c in range(c,i):5 print('for中のcの値:'+str(c))6 if ws_new.cell(row=c,column=1).value == '重複':7 ws_new.delete_rows(c)8 c = c - 19 print('-1を加えたcの値:'+str(c))

実行結果

for中のcの値:4 for中のcの値:5 for中のcの値:6 for中のcの値:7 for中のcの値:8 for中のcの値:9 -1を加えたcの値:8 for中のcの値:10 -1を加えたcの値:9 for中のcの値:11 for中のcの値:12

試したこと

元々、社員番号の重複がある場合は一つの行にまとめるという操作を行うための処理なのですが、pandasのduplicatedなどを試してみても、表の装飾や入力をopenpyxlを使って操作していたためか、どう修正しても上手く実行されなかったため、崩しに崩してこのような処理に至りました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント