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