Importer un fichier CSV avec plusieurs formats d'heure ?Salut. Je me demande s'il existe un moyen dans JMP d'importer un fichier CSV dont la colonne datetime contient plusieurs formats ? Ou bien, quelqu'un a-t-il un script intelligent pour faire cela ?
Nous avons des fournisseurs qui nous fournissent des données sous forme de fichiers CSV. Ils ne font pas toujours attention à suivre un format datetime cohérent. Le problème se produit lorsque ce format change au sein d'un seul csv. Par exemple, les lignes 1 à 1 546 peuvent apparaître au format « m/j/aa hh: mm » et les lignes 1 547 à 3 457 peuvent apparaître au format « aaaa/mm/jj hh: mm: ss ».
Je sais que je peux importer le fichier CSV et forcer la colonne datetime à rester sous forme de texte, soit en utilisant l'éditeur d'aperçu, soit en utilisant l'importation de fichiers multiples. Mais en fin de compte, je dois convertir cette colonne en numérique, et je ne trouve pas de moyen simple de le faire sans que certaines lignes aient des valeurs manquantes.
J'ai envisagé de diviser le fichier de données en plusieurs parties en fonction du format, puis de convertir manuellement chacune d'elles au format correct, mais cela prend trop de temps.
Quelqu'un a-t-il des idées ou un script que je peux emprunter ? Merci!
-Stefan
Mes Details:
JMP Pro 17.2.0
Mac OS Ventura 13.6.4
Automatisation et scriptsRe : Importer un fichier CSV avec plusieurs formats d'heure ?Merci @mmarchandTSI . Solution élégante et simple.
Re : Importer un fichier CSV avec plusieurs formats d'heure ?J'importerais cette colonne sous forme de texte, puis j'écrirais une formule capable de convertir tous les différents formats de date en datenum. Vous pouvez ensuite modifier le format de cette colonne de formule pour présenter la date/heure.
Re : Importer un fichier CSV avec plusieurs formats d'heure ?Essaye ça. Importez :Date en tant que colonne de caractères et créez une nouvelle colonne :Date standardisée.
New Column( "Standardized Date",
Numeric,
"Continuous",
Format( "m/d/y h:m:s", 23, 0 ),
Formula( Num( :Date ) )
);
Tant que les valeurs :Date sont toutes valides, cela fonctionne très bien.
