CSV mit zwei Zeilen als Kopfzeile importierenHallo,
Ich arbeite mit relativ großen CSV-Dateien (±150 MB). Die Dateien beginnen mit zwei Zeilen, die als Spaltenüberschrift kombiniert werden müssen.
Ich habe ein Skript geschrieben, das jede Spalte durchläuft und den Spaltennamen auf den aktuellen Namen + den Wert der ersten Zeile setzt.
Das Problem ist, dass es sehr langsam läuft. Manchmal muss ich ±10 Minuten warten, bis ich den Namen von 4000 Spalten geändert habe.
Es hängt irgendwie von der Dateigröße ab. Das Ändern derselben Spaltenanzahl in einer kleinen Datei dauert einige Sekunden.
Ich habe einige Problemumgehungen ausprobiert –
1. Unterteilen Sie nur die erste Zeile und ändern Sie alle Spaltennamen (sehr schnell). Ich dachte dann, ich würde die Originaltabelle verketten, aber das geht nicht, weil die Spaltennamen jetzt nicht identisch sind.
2. Aktualisieren Sie die CSV-Importeinstellung wie vorgeschlagen Hier . aber ich sehe immer noch keine Option, zwei Zeilen als Kopfzeile einzufügen.
3. Exportieren Sie die Datei als XLS und importieren Sie sie dann mit zwei Zeilen als Kopfzeile. Die Exportzeit ist länger als die ursprüngliche Änderung des Spaltennamens.
Gibt es eine andere Problemumgehung, die mir fehlt? Vielleicht gibt es eine Option, alle Spaltennamen basierend auf einer Liste zu ändern?
Vielen Dank im Voraus für die Helfer.
MassenanpassungBetreff: CSV mit zwei Zeilen als Kopfzeile importierenSie können den Import mehrerer Dateien versuchen, sogar für nur eine Datei. Könnte schneller sein und unterstützt mehrere Zeilenköpfe.
File->Import Multiple FilesFile->Import Multiple FilesDatei->Mehrere Dateien importieren
Betreff: CSV mit zwei Zeilen als Kopfzeile importierenHallo @Rans ,
Wenn Sie die Datei mit JMP öffnen und das Kontrollkästchen „Standardprogramm zum Öffnen verwenden“ deaktivieren. Deaktivieren Sie „Als Text öffnen“ und wählen Sie dann das Optionsfeld „Daten (mit Vorschau)“. Achten Sie darauf, alle Dateien (*.*) im JMP-Öffnungsfenster auszuwählen.

Sie können dann einige der wichtigen Trennzeichen und andere Dinge auswählen, einschließlich der Zeile, mit der die Daten beginnen. Wenn also zwei Zeilen als Überschriften vorhanden sind, überspringen Sie eine und setzen dann den Datenanfang auf Zeile 3 oder was auch immer.

Anschließend können Sie das „Source“-Skript in der Datentabelle öffnen, die Importeinstellungen nach Bedarf bearbeiten und dieses Skript in Ihrem JSL-Programm verwenden.

Wenn Sie es alternativ als XLSX-Datei erneut speichern können, können Sie den Befehl Open() verwenden und festlegen, welche Registerkarte geöffnet werden soll, mit welcher Spalte begonnen/gestoppt werden soll und mit welcher Zeile begonnen/gestoppt werden soll mehrere Zeilen als Kopfzeile. Das sollte Ihr Problem lösen, die Spalten umbenennen zu müssen.

Die letzte Option, die ich erwähnen möchte, besteht darin, dass Sie, wenn Sie die Spaltennamen kennen und diese sich nicht ändern, in Ihrem Skript eine Liste ColNames ={"...", "...",... haben können. .} mit allen korrekten Namen in Anführungszeichen, getrennt durch Kommas in der Liste. Anschließend können Sie nach dem Laden der CSV-Datei eine For-Schleife ausführen, um jede Spalte entsprechend den Einträgen in ColNames umzubenennen. Zum Beispiel:
dt=Current data table();//or whatever your data table name is.
icols=.;//variable to count through the columns
For(icols=1, icols<=N Columns(dt), icols++,
Column(dt, icols) <<SET name=""></SET>
Ich hoffe, einer davon hilft!
Viel Glück,
DS