Comment puis-je réassembler et générer rapidement différentes tables à partir de nombreuses tables JMP ?Il y a maintenant 2400 de ces fichiers JMP dans le même répertoire C:\8 : tables JMP avec des noms de fichiers avec des horodatages détaillés et 5000 lignes de données chacune. Par exemple, C:\8\20241031112503.JMP.
S5 E5 S4 E4 S3 E3 S2 E2 S1 E1 B1 T1 B2 T2 B3 T3 B4 T4 B5 T5 enco
6024 2 6023 10 6021 6 6020 96 6019 18 6018 400 6017 16 6016 78 6015 41 6014 8 603198
1263 88 1262 290 1261 254 1260 347 1259 301 1258 544 1257 364 1256 630 1255 1123 1254 362 600377
Il faut maintenant réorganiser la table pour enregistrer le fichier en fonction du numéro de code de la colonne « enco », bien sûr, le même « enco » afin que les données d'horodatage dans le nom de fichier d'origine soient ajoutées pour faire la distinction.
Instructions:
"enco" n'est pas répété sur chaque ligne du même fichier.Et l'enco n'est pas exactement le même dans les fichiers 2400
La clé est de trouver un moyen de le faire rapidement. Les méthodes JSL ou Python peuvent être utilisées avec le logiciel JMP (indiquant Python dans l'environnement JMP).
Bien sûr, si le fichier d'origine est au format CSV ou dans un format de base de données plus pratique pour ce type de fractionnement et de tri, vous pouvez fournir de meilleures suggestions. Merci !
Automatisation et scriptsFenêtresRe : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?En comparaison ou en utilisant directement les bibliothèques et dictionnaires CSV, les conteneurs sont les plus rapides.
Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?Oui, je sais aussi que GPT-4o n'est pas familier avec le logiciel JSL du JMP.
Plus tard, je l'ai laissé gérer directement le CSV.
Ajoutez ensuite la syntaxe JSL pour la modifier à nouveau.
import os<BR />import duckdb<BR />import pandas as pd<BR />from pathlib import Path<BR />output_dir = Path(r"C:\3")<BR />output_dir.mkdir(exist_ok=True)<BR />con = duckdb.connect(":memory:")<BR />def process_csv_files():<BR />csv_files = list(Path(r"C:\8").glob("*.CSV"))<BR />first_file = csv_files[0]<BR />timestamp = first_file.stem <BR />con.execute("""<BR />CREATE TABLE all_data AS <BR />SELECT *, ? as file_timestamp <BR />FROM read_csv_auto(?)<BR />""", [timestamp, str(first_file)])<BR />for csv_file in csv_files[1:]:<BR />timestamp = csv_file.stem <BR />con.execute("""<BR />INSERT INTO all_data <BR />SELECT *, ? as file_timestamp <BR />FROM read_csv_auto(?)<BR />""", [timestamp, str(csv_file)])<BR />enco_values = con.execute("SELECT DISTINCT enco FROM all_data").fetchall()<BR />for (enco,) in enco_values:<BR />query = """<BR />SELECT * <BR />FROM all_data <BR />WHERE enco = ?<BR />ORDER BY file_timestamp<BR />"""<BR />df = con.execute(query, [enco]).df()<BR />output_file = output_dir / f"{enco}.csv"<BR />df.to_csv(output_file, index=False)<BR />if __name__ == "__main__":<BR />try:<BR />process_csv_files()<BR />except Exception as e:<BR />print(f"E: {str(e)}")Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?Je peux fournir des suggestions pour JMP (et JSL) mais pour cela, j'ai besoin de plus d'exemples et d'une bonne compréhension de ce que vous essayez d'accomplir. Essayez-vous d'avoir un fichier unique pour chaque enco ? Toutes les tables contiennent-elles exactement les mêmes colonnes ? Contiennent-elles toujours des données similaires (entiers) ? Ont-elles toujours seulement deux lignes ? Les noms de fichiers sont-ils toujours au même format ? Les tables ont-elles des en-têtes correctement définis ou la première ligne contient-elle des données de caractères avec les en-têtes ?
Je considère que les questions (pures) sur Python appartiennent (pour la plupart) à d'autres forums. Si vous avez les données sous forme de fichiers .csv, utiliser DuckDB devrait être une tâche simple. De plus, lorsque vous utilisez Python, il vaut vraiment la peine d'apprendre à lire la documentation de chacune des bibliothèques que vous utilisez au lieu de vous fier uniquement à LLM ( Reading Multiple Files – DuckDB ).
Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?En revanche
Le traitement CSV est beaucoup plus rapide.

Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?Merci les experts !
Oui, je veux aussi essayer de nouvelles méthodes.Demandez aux experts comment implémenter Python et DuckDB spécifiquement ?Merci beaucoup!
Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?J'essaierais d'abord avec l'importation de fichiers multiples s'il peut gérer cela (créer une table unique avec la source (nom de fichier) et partir de là). Ensuite, j'essaierais peut-être une solution JSL, puis éventuellement une autre solution JSL et enfin l'intégration Python avec DuckDB.
Re : Comment puis-je réassembler et générer rapidement différentes tables à partir de plusieurs tables JMP ?J'ai essayé de les combiner tous dans une table JMP, puis d'en extraire des sous-ensembles.La vitesse est lente.
Il est plus rapide de créer différents tableaux de mémoire en mémoire pour les concaténer, mais cela rendra le code plus complexe.
Merci les experts !