多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?現在、同じディレクトリ C:\8 に、詳細なタイムスタンプと 5000 行のデータを含むファイル名を持つ JMP テーブルが 2400 個あります。たとえば、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
ここで、テーブルを再編成して、「enco」列のコード番号に従ってファイルを保存する必要があり、もちろん、「enco」が同じになるように、元のファイル名にタイムスタンプ データを追加して区別する必要があります。
説明書:
「enco」は同じファイルの各行で繰り返されません。そして、encoは2400ファイルでは全く同じではありません
重要なのは、これを迅速に実行する方法を見つけることです。JMP ソフトウェアでは、JSL または Python のいずれかのメソッドを使用できます (JMP 環境では Python を示します)。
もちろん、元のファイルが CSV 形式や、この種の分割や並べ替えに便利なデータベース形式である場合は、より適切な提案を提供できます。ありがとうございます!
自動化とスクリプトウィンドウズRe: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?比較すると、CSV ライブラリと辞書を直接使用する場合、コンテナーが最も高速です。
Re: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?はい、GPT-4o が JMP ソフトウェアの JSL に精通していないことも知っています。
そこで、後で CSV を直接処理できるようにしました。
次に、JSL 構文を追加して再度変更します。
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: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?JMP (および JSL) に関する提案はできますが、そのためには、より多くの例と、達成しようとしていることの適切な理解が必要です。各 enco に 1 つの一意のファイルを用意しようとしていますか? すべてのテーブルにまったく同じ列が含まれていますか? 常に同様のデータ (整数) が含まれていますか? 常に 2 行だけですか? ファイル名は常に同じ形式ですか? テーブルにヘッダーが適切に設定されていますか、それとも最初の行はヘッダー付きの文字データですか?
私は、(純粋な)Python に関する質問は(ほとんど)他のフォーラムに属すると考えています。データが .csv ファイルである場合、DuckDB の使用は簡単な作業になるはずです。また、Python を使用する場合は、LLM( 複数のファイルの読み取り - DuckDB )に頼るのではなく、使用している各ライブラリのドキュメントを読むことを学ぶことは間違いなく価値があります。
Re: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?対照的に
CSV の処理がはるかに高速になります。

Re: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?専門家の皆さん、ありがとう!
はい、私も新しい方法を試してみたいです。Python と DuckDB を具体的に実装する方法を専門家に尋ねますか?どうもありがとうございます!
Re: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?複数ファイルのインポートが可能な場合は、まずそれを試します (ソース (ファイル名) を使用して単一のテーブルを構築し、そこから開始します)。次に、おそらく JSL ソリューションを試し、次に他の JSL ソリューションを試し、最後に DuckDB との Python 統合を試します。
Re: 多数の JMP テーブルから異なるテーブルをすばやく再構成して生成するにはどうすればよいでしょうか?これらすべてを JMP テーブルに結合し、サブセットを抽出しようとしました。速度が遅いです。
メモリ内に異なるメモリ配列を作成して連結する方が高速ですが、コードはより複雑になります。
専門家の皆さん、ありがとう!