こちらのデータの前処理で困っています。
B,C,E列が同じ値の時、D列の最大値以外のデータを削除したいです。
つまり、上のデータで言うならば、3行目を削除したいです。
このデータ処理の前過程的(以下のプログラム)にpandasは使わずに行いたいです。
リストを辞書化するなど色々試したつもりですが、自力ではできなかったです。
どうかご教授お願い致します。
以下のプログラムは前過程の部分です。
python
import csv import collections save_name = r"C:\Users\python/2022-01-13.csv" def write_macrosheet(): f = open(save_name, "r") reader = csv.reader(f) data = [ e for e in reader ] #20211101 データの年月日と設備Noが0の時は削除!(本データでは4行目は削除されるはず) data_len = len(data) # print(data_len) for d in reversed(range(data_len)): if data[d][0][0:2]== "00" and data[d][5][0:1]== "0": del data[d] #20211213 uniqueデータのみにする seen = [] unique_list = [x for x in data if x not in seen and not seen.append(x)] data = unique_list #発生時間[B]と番号[C]と番号[E]が同じものは時間[D]が最大のものだけ残して他削除
まだ回答がついていません
会員登録して回答してみよう