importer un fichier CSV avec deux lignes comme en-têteSalut,
Je travaille avec des fichiers CSV relativement volumineux (± 150 Mo). Les fichiers commencent par deux lignes qui doivent être combinées comme en-tête de colonne.
J'ai écrit un script qui parcourt chaque colonne et définit le nom de la colonne sur le nom actuel + la valeur de la première ligne.
Le problème est qu'il fonctionne très lentement, parfois je dois attendre ± 10 minutes pour changer le nom de 4000 colonnes.
Cela dépend en quelque sorte de la taille du fichier, changer le même nombre de colonnes dans un petit fichier prend quelques secondes.
J'ai essayé quelques solutions de contournement -
1. sous-ensemble uniquement la première ligne et modification de tous les noms de colonnes (très rapide). J'ai alors pensé concaténer la table d'origine, mais je ne peux pas le faire car les noms de colonnes ne sont plus les mêmes.
2. mise à jour du paramètre d'importation CSV comme suggéré ici . mais je ne vois toujours pas d'option pour inclure deux lignes comme en-tête.
3. exportez le fichier au format xls puis importez-le avec deux lignes comme en-tête. le temps d'exportation est plus long que le changement de nom de colonne d'origine.
Existe-t-il une autre solution de contournement qui me manque, peut-être existe-t-il une option permettant de modifier tous les noms de colonnes en fonction d'une liste ?
Merci d'avance pour les aides.
Personnalisation de masseRe : importer un fichier CSV avec deux lignes en en-têteVous pouvez essayer d'importer plusieurs fichiers, même pour un seul fichier. Peut-être plus rapide et prend en charge plusieurs en-têtes de ligne.
File->Import Multiple FilesFile->Import Multiple FilesFichier->Importer plusieurs fichiers
Re : importer un fichier CSV avec deux lignes en en-têteSalut @Rans ,
Si vous ouvrez le fichier avec JMP et décochez la case "Utiliser le programme par défaut pour ouvrir. Décochez pour ouvrir sous forme de texte.", puis sélectionnez le bouton radio "Données (utilisation de l'aperçu)" ; assurez-vous de sélectionner tous les fichiers (*.*) dans la fenêtre ouverte de JMP.

Vous pouvez ensuite sélectionner certains des délimiteurs importants et d'autres éléments, y compris la ligne de début des données. Ainsi, s'il y a deux lignes comme en-têtes, vous en sauterez une, puis définirez le début des données sur la ligne 3 ou quoi que ce soit.

Vous pouvez ensuite ouvrir le script "Source" dans la table de données, modifier les paramètres d'importation si nécessaire et utiliser ce script dans votre programme JSL.

Alternativement, si vous pouvez le réenregistrer en tant que fichier XLSX, vous pouvez alors utiliser la commande Open() et définir quel onglet ouvrir, avec quelle colonne démarrer/arrêter et avec quelle ligne démarrer/arrêter tout en ayant plusieurs lignes comme en-tête. Cela devrait résoudre votre problème de devoir renommer les colonnes.

La dernière option que je mentionnerais est que si vous connaissez les noms des colonnes et qu'ils ne changent pas, alors dans votre script, vous pouvez avoir une liste ColNames ={"...", "...",.. .} avec tous les noms corrects entre guillemets séparés par des virgules dans la liste. Ensuite, après avoir chargé le fichier CSV, vous pouvez exécuter une boucle For pour renommer chaque colonne en fonction des entrées dans ColNames. Par exemple:
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>
J'espère que l'un de ceux-ci vous aidera !
Bonne chance,
DS