前提・実現したいこと
以下のようなcsvファイルの数値だけを比較して±5以内なら同一IDに書き換えるということをしたい
下記でいうとID3を2にしたい
Frame #: 1,,,,, Frame_time:0.03,,,,, Frame #: 2,,,,, Frame_time:0.07,,,,, Frame #: 3,,,,, ID:1,KPHN,866,800,965,850 ID:2,KPHN,796,850,851,904 Frame_time:0.10,,,,, Frame #: 4,,,,, ID:1,KPHN,866,800,967,851 ID:3,KPHN,796,852,851,906 Frame_time:0.13,,,,, Frame #: 5,,,,, ID:1,KPHN,873,799,976,851 ID:3,KPHN,796,852,853,909 Frame_time:0.17,,,,, Frame #: 6,,,,, ID:1,KPHN,875,799,979,853 ID:3,KPHN,796,853,855,911
該当のソースコード
python
1import pandas as pd 2f = open('out.csv', 'r', encoding='UTF-8') 3i= open('inp.txt','w', encoding='UTF-8') 4a="ID:" 5for data in f: 6 if a in data: 7 i.write(data) 8 elif a not in data: 9 i.write(data) 10 11 12f.close
試したこと
Pandasを使うほうが簡単かもしれないのだがイマイチ理解できていないので上のようなのを書いてみました
とりあえず上のやつだとIDと行に入っているものと入っていないものを別々に記述できるようにはなりました。
あとはif a in dataのところでIDの行を変数に保持し各数値を比較したいのですがそのやり方が分からなくて困っています
補足情報(FW/ツールのバージョンなど)
pandasを使えばこんなにも簡単にできるよとかあれば色々教えていただきたいです