für einen, für mich als Python-Anfänger, "kniffligen Fall" benötige ich einmal Eure Ideen..
Ausgangspunkt sind zwei unsortierte CSV Files mit je ca. 1000k Lines, die Referenzierung erfolgt durch den Abgleich von Typ und Charge (siehe file_3.csv)..
Code: Alles auswählen
file_1.csv
i;Datum;Typ;Anzahl;Charge
1;2018-01-01;Mutter;3,666
2;2018-01-01;Schraube;3,0815
3;2018-01-01;Nagel;3,0816
4;2018-03-05;Schraubenzieher;1;3698
...
Code: Alles auswählen
file_2.csv
i;Datum;Typ;Anzahl;Charge
1;2018-01-01;Nagel;4,0816
2;2018-01-02;Schraube;3,0815
3;2018-01-01;Mutter;3,666
4;2018-01-01;Mutter;3,666
...
Code: Alles auswählen
file_3.csv
i;Typ;Charge;Datum_file_1;Datum_file_2;Anzahl_file_1;Anzahl_file_2;Diff
1;Mutter;666;"";2018-01-01;"";3;"Added"
2;Schraube;0815;2018-01-01;2018-01-02;3;3;"Date changed"
3;Nagel;0816;2018-01-01;2018-01-01;3;4;"QTY changed"
4;Schraubenzieher;3698;2018-03-05;"";1;"";"Deleted"
A) zwei for-Schleifen und mehreren If Abfragen, welche bei der Größe der Dateien und der benötigten Zeit nicht Zielführend war.
B) numpy where() Funktion, gibt mir bei 2/4 Fällen ein False aus. Bisher beste Methode.
C) difflib, schöne Lib, brachte bisher aber auch keinen Durchbruch..
Hoffe die Infos sind ausreichend und verständlich, falls nicht, reiche/bessere ich gerne nach
Wie würdet ihr an den Fall rangehen? Primär geht es mir nicht um einen fertigen Code, sondern, wie oben beschrieben, um Ideen bzw. Lösungsansätze.
Vorab Vielen Dank