Importieren Sie CSV mit zwei Zeilen als HeaderHallo,
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 läuft sehr langsam, manchmal muss ich ± 10 Minuten warten, um den Namen von 4000 Spalten zu ändern.
Es hängt irgendwie von der Dateigröße ab, das Ändern der gleichen Spaltenmenge in einer kleinen Datei dauert einige Sekunden.
Ich habe einige Problemumgehungen versucht -
1. Teilmenge nur die erste Zeile und Änderung aller Spaltennamen (sehr schnell). Ich dachte dann, ich werde die ursprüngliche Tabelle verketten, aber ich kann es nicht tun, weil die Spaltennamen jetzt nicht gleich sind.
2. Aktualisieren der CSV-Importeinstellung wie vorgeschlagen Hier . Ich sehe jedoch immer noch keine Option, zwei Zeilen als Kopfzeile einzuschließen.
3. Exportieren Sie die Datei als XLS und importieren Sie sie dann mit zwei Zeilen als Header. 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, um alle Spaltennamen basierend auf einer Liste zu ändern?
Vielen Dank im Voraus für die Helfer.
DatentabelleSkriptingBetreff: CSV mit zwei Zeilen als Header importierenHallo @Rans ,
Wenn Sie die Datei mit JMP öffnen und das Kontrollkästchen "Standardprogramm zum Öffnen verwenden" deaktivieren. Deaktivieren Sie diese Option, um sie als Text zu öffnen. "Und aktivieren Sie dann das Optionsfeld" Daten (mit Vorschau) ". Stellen Sie sicher, dass Sie alle Dateien (*. *) Im JMP-Öffnungsfenster auswählen.

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

Sie können dann das Skript "Quelle" 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 definieren, welche Registerkarte geöffnet werden soll, mit welcher Spalte gestartet / gestoppt werden soll und mit welcher Zeile gestartet / gestoppt werden soll mehrere Zeilen als Überschrift. Das sollte Ihr Problem lösen, die Spalten umbenennen zu müssen.

Die letzte Option, die ich erwähnen möchte, ist, dass Sie in Ihrem Skript eine Liste ColNames = {"...", "...", .. haben können, wenn Sie die Spaltennamen kennen und sie sich nicht ändern. .} mit allen korrekten Namen in Anführungszeichen, die in der Liste durch Kommas getrennt sind. Nach dem Laden der CSV-Datei können Sie eine For-Schleife ausführen, um jede Spalte gemäß den Einträgen in ColNames umzubenennen. Beispielsweise:
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>
Hoffe einer dieser hilft!
Viel Glück,
DS
Betreff: CSV mit zwei Zeilen als Header importierenSie können versuchen, mehrere Dateien zu importieren, auch nur für eine Datei. Könnte schneller sein und unterstützt mehrere Zeilenüberschriften.
Datei-> Mehrere Dateien importieren