Hallo zusammen,
ich habe zwei CSV Dateien. Die Zeilenwerte sind identisch bis auf einen Wert. Im Moment iteriere ich durch Datei A (Referenzdatei), suche mir diese Zeile in Datei B und übernehme den Wert, falls sich dieser unterscheidet.
Datei A:
Datei B:
Es geht um die Spalte "Passed". Der Wert muss, wenn er 1 ist, in die Zeile in Datei A übernommen werden. Die Zeilen stehen kreuz und quer jeweils in den Dateien, daher ist ein stupider 1:1 Abgleich nicht möglich.
Ich habe das schon im PowerShell geschrieben, weil ich das am besten kann. Problem: Es dauert eeeewig. Wir reden da von Stunden, trotz Optimierungsversuche. Datei A ist knapp 25 und Datei B 77 MB groß. Ich iteriere aktuell durch jede Zeile in Datei A und prüfe, ob diese in Datei B vorhanden ist - speziell prüfe ich, ob bestimmte Werte in einer Zeile in Datei B identisch sind und lese dann "Passed" aus. Das dauert natürlich.
Denkt ihr in Python bekommt man das Ganze schneller hin? ^^
Ein paar Tipps/Anhaltspunkte wie ich da vorgehen könnte - speziell wie ich die Zellenwerte in Datei B einfach "suchen" kann?
Bei PowerShell ist das einfach
In Python tue ich mich da schwer.
Ist übrigens keine Hausaufgabe sondern ein realer Fall den ich aktuell versuche zu lösen. ^^
Danke und Grüße
ich habe zwei CSV Dateien. Die Zeilenwerte sind identisch bis auf einen Wert. Im Moment iteriere ich durch Datei A (Referenzdatei), suche mir diese Zeile in Datei B und übernehme den Wert, falls sich dieser unterscheidet.
Datei A:
Code:
OID,Caption,User,Mode,Passed
4,Der Schwarm,UserA,test,0
6,Das Auto,UserB,test,0
8,Die Bahn,UserC,test,0
12,Die Uhr,UserA,test,0
34,Der Computer,UserB,test,0
55,Das Internet,UserC,test,0
112,Die Tür,UserA,test,0
45,Das Dach,UserB,test,0
80,Der Strick,UserC,test,0
Datei B:
Code:
OID,Caption,User,Mode,Passed
4,Der Schwarm,UserA,test,1
55,Das Internet,UserC,test,1
80,Der Strick,UserC,test,1
8,Die Bahn,UserC,test,0
6,Das Auto,UserB,test,1
12,Die Uhr,UserA,test,0
34,Der Computer,UserB,test,1
45,Das Dach,UserB,test,0
112,Die Tür,UserA,test,1
Es geht um die Spalte "Passed". Der Wert muss, wenn er 1 ist, in die Zeile in Datei A übernommen werden. Die Zeilen stehen kreuz und quer jeweils in den Dateien, daher ist ein stupider 1:1 Abgleich nicht möglich.
Ich habe das schon im PowerShell geschrieben, weil ich das am besten kann. Problem: Es dauert eeeewig. Wir reden da von Stunden, trotz Optimierungsversuche. Datei A ist knapp 25 und Datei B 77 MB groß. Ich iteriere aktuell durch jede Zeile in Datei A und prüfe, ob diese in Datei B vorhanden ist - speziell prüfe ich, ob bestimmte Werte in einer Zeile in Datei B identisch sind und lese dann "Passed" aus. Das dauert natürlich.
Denkt ihr in Python bekommt man das Ganze schneller hin? ^^
Ein paar Tipps/Anhaltspunkte wie ich da vorgehen könnte - speziell wie ich die Zellenwerte in Datei B einfach "suchen" kann?
Bei PowerShell ist das einfach
Code:
DateiB.csv | where {$_.OID -eq $DateiA.OID -and ...}
Ist übrigens keine Hausaufgabe sondern ein realer Fall den ich aktuell versuche zu lösen. ^^
Danke und Grüße