Mamy plik tekstowy w formacie:
64609;2023;04;03;05;11;26;WE;0538
64470;2023;04;03;05;12;36;WE;0475
64472;2023;04;03;05;13;42;WE;0477
64539;2023;04;03;05;16;24;WE;0512
64652;2023;04;03;05;16;26;WE;0562
64818;2023;04;03;05;17;52;WE;0427
............................................................
64609;2023;04;03;05;47;26;WE;0538 wiersz do usunięcia-wpis dla mies -04 dnia-03 WE i id-0538 już istnieje wyżej
64609;2023;04;05;05;47;26;WE;0538
...........................................................
64818;2023;04;05;05;17;52;WE;0427 ( nr_ID ;rok ;mies ;dzień ;godz ;min ,sek ;znak ;id)
Dane w pliku są ułożone według daty i czasu. Plik trzeba przefiltrować tak aby zostawić tylko pierwszy wpis ( z najwcześniejszą godziną, minutą) w danym dniu miesiąca dla danego ID i znaku WE.
Mogę użyć modułu panda, wczytać plik do tabeli ( bo na tabeli pewnie będzie łatwiej działać) i co dalej?
Pliki są generowane codziennie. Dni, miesiące i ID będą się zmieniać. Dni w zakresie 1-31, miesięcy 1-12, ID jest parę setek. Sprawdzać kombinacje dla wszystkich miesięcy i dni? Może lepiej jakoś wyłuskać dni, miesiące i ID z tabeli. Miesięcy może być w typowym pliku 2 (na przełomie) a dni 7, wtedy będzie dużo mniej do sprawdzania.
Hmm..Odczytać miesiąc z kolumny pierwszego wiersza, zapisać do listy. Odczytać z drugiego wiersza, sprawdzić czy jest na liście jeśli nie ma dopisać itd. Mamy listę miesięcy. To samo zrobić z dniami i ID. Potem potem wziąć mies, dzień i ID z list i porównywać z wierszami tabeli. Jeśli znajdzie pierwszy pasujący zostawić, drugi i kolejne pasujące wiersze usunąć. Potem następne ID ten sam dzień i miesiąc. Sprawdzić tabelę, pierwszy pasujący zostawić, natępne pasujące usunąć itd
Jeśli ktoś ma jakiś pomysł jak zrobić to filtrowanie, jakich funkcji użyć to proszę o podpowiedzi.